Pet*_*ete 8 linq-to-entities linq-to-sql
在Linq-to-SQL中查询模型对象上的EntitySet属性时,它将返回实体集中的所有行,并进一步查询客户端.
这在网上的一些地方得到了证实,我自己也观察到了这种行为.EntitySet不实现IQueryable.
我必须做的是转换代码,如:
var myChild = ... ;
// Where clause performed client-side.
var query = myChild.Parents().Where(...) ;
Run Code Online (Sandbox Code Playgroud)
至:
var myChild = ... ;
// Where clause performed in DB and only minimal set of rows returned.
var query = MyDataContext.Parents().Where(p => p.Child() == myChild) ;
Run Code Online (Sandbox Code Playgroud)
有谁知道更好的解决方案?
第二个问题:这是在实体框架中修复的吗?
EntitySet只是实体的集合.它实现IEnumerable,而不是IQueryable.Active Record模式指定实体直接负责自己的持久性.OR映射器实体不具有持久层的任何直接知识.或者Mappers将此职责以及工作单元和身份映射职责放入数据上下文中.因此,如果需要查询数据源,则必须使用上下文(或Table对象).要改变这种情况会使使用中的图案变形.
| 归档时间: |
|
| 查看次数: |
3719 次 |
| 最近记录: |