Я попытался использовать SubSunsonic.ActiveRecord в проекте SL3, который использует .NET RIA Services. Однако, когда я пытаюсь вернуть некоторый IQuerable в классе DomainService, я получаю сообщение об ошибке, что классы, сгенерированные Subsonic, имеют свойство Columns с неподдерживаемым типом. Вот что у меня есть
public IEnumerable<SE_NorthWind.SuperEmployee> GetIntegers()
{
return SE_NorthWind.SuperEmployee.All()
.Where(emp => emp.Issues > 100)
.OrderBy(emp => emp.EmployeeID);
}
И это ошибка, которую я получаю
Error 7 Entity 'SE_NorthWind.SuperEmployee' has a property 'Columns' with an unsupported type. SuperEmployee
Есть идеи, что делать? Не хочу использовать Linq to SQL :)
Спасибо
P.S. Просто пытался LinqTemplates от SubSonic, но в этом решении я получаю сообщение об ошибке
Error 4 The entity 'SE_NorthWind.SuperEmployee' does not have a key defined. Entities exposed by DomainService operations must have must have at least one property marked with the KeyAttribute. SuperEmployee
конечно, таблица SuperEmployee имеет первичный ключ, потому что классы, сгенерированные SubSonic, могут его видеть
...
Columns.Add(new DatabaseColumn("EmployeeID", this)
{
IsPrimaryKey = true,
DataType = DbType.Int32,
IsNullable = false,
AutoIncrement = true,
IsForeignKey = false,
MaxLength = 0
});
...
Но для объектов RIA нужны некоторые атрибуты. Думаю, мне придется использовать собственный Linq To SQL, пока SubSonic не адаптируется ко всему этому :(