Я не согласен с комментарием Тони Хопкинсона. Вы не должны добавлять свойство только для чтения к вашему классу Contact
, поскольку такое свойство нельзя использовать в LINQ to Entities и, следовательно, не подходит для методов, которые возвращают IQueryable
. * 1005. *
Вместо этого сделайте что-то вроде:
public IQueryable<ContractSumsModel> GetSums()
{
var repository = new ContractsRepository(this.Context);
return from c in repository.GetAll()
select new ContractSumsModel
{
Field1 = c.Field1,
Field2 = c.Field2,
Fields1and3 = Field1 + Field3,
Fields2and4 = Field2 + Field4
};
}
Приятно то, что вы можете дополнительно составить запрос:
var q = MyBusinessLayer.GetSums().OrderBy(c => c.Fields1and3).Take(5);
... и все это делается в SQL.