Per*_*ver 5 c# entity-framework iqueryable
假设我有以下两个表
A,B和C表有一个布尔"IsEnabled"列.
表之间有1对多的关系如下:
我正在使用Entity框架来查询表,而编程是在C#中.假设,我需要A中的所有列,我执行以下操作:
var query = _context.A;
query.where( <where clause> )
如果我需要包含B列以防止延迟加载,
query.Include ( s => s.B );
Run Code Online (Sandbox Code Playgroud)
问题是,如何通过添加where子句来包含B列以仅选择具有IsEnabled = 1的行?我正在寻找类似的东西:
query.Include ( s => s.B.where ( k => k.IsEnabled = 1 )) (这不起作用并抛出运行时异常)
如果我们可以得到上面的问题,我想要包括C的列,对于B和C都是IsEnabled = 1的行.这可能吗?
Include 用于急切加载关系,但不幸的是,实体框架不支持通过延迟加载或急切加载在服务器端过滤这些集合。
您有两个选择 - 在客户端进行过滤,或重新排列您的查询以实现最有效的使用(例如,如果您在使用 C,请选择C.Where(c => c.IsEnabled && c.B.IsEnabled && c.B.A.IsEnabled))。
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |