我是商业层中EntityFreamework的存储库模式的首发
我有方法
public IQueryable<Contract> GetAll()
{
var repository = new ContractsRepository(this.Context);
return repository.GetAll();
}
public IQueryable<Contract> GetAll(Func<Contract, bool> predicate)
{
var repository = new ContractsRepository(this.Context);
return repository.GetAll(predicate);
}
这些都很好,但是我想在函数返回值时对字段进行计算吗?
例如,我有2个表表1和表2
我想要Bussiness图层Table1 Get方法来编写以下内容
Field1 ,Field2,Field1+Field3,Field2+Field4
感谢
答案 0 :(得分:4)
我不同意Tony Hopkinson的评论。 不应该向Contact
类添加只读属性,因为这样的属性不能在LINQ to Entities中使用,因此不适合返回{{1 }}
相反,做一些事情:
IQueryable
关于这一点的好处是你可以进一步撰写查询:
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
};
}
......整个过程都是在SQL中完成的。