在存储库模式中编写 Get 方法
我是业务层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
- 表1有字段1和字段2
- 表2有字段3和字段4。
我想要业务层Table1的Get方法写如下
Field1 ,Field2,Field1+Field3,Field2+Field4
谢谢
i'm starter in Repository Pattern in EntityFreamework in Bussiness Layer
i Have Get Methods
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);
}
These are good,But I want to do computing on the field when a function return value to do what?
For example, I have 2 tables Table 1 and Table 2
- Table1 have a Field1 and Field 2
- Table2 have Field3 and Field4.
I want the Bussiness layer Table1 Get method to write the following
Field1 ,Field2,Field1+Field3,Field2+Field4
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不同意托尼·霍普金森的评论。您不应该向
Contact
类添加只读属性,因为这样的属性不能在 LINQ to Entities 中使用,因此不适合返回IQueryable
。相反,执行如下操作:
这样做的好处是您可以进一步编写查询:
...整个过程都是在 SQL 中完成的。
I disagree with Tony Hopkinson's comment. You should not add a read-only property to your
Contact
class, because such a property cannot be used in LINQ to Entities, and hence aren't suitable for methods which returnIQueryable
.Instead, do something like:
The nice thing about this is that you can further compose the query:
...and the whole thing is done in SQL.