实体框架仅包含条件的项目

时间:2016-06-26 06:36:42

标签: c# entity-framework-5

我需要我的上下文按条件包含sonns,我需要未删除的行(逻辑删除)。

我明白我不能在包含中添加条件;所以我想过滤上下文,但它不起作用。

var aa = ctx.aa
         .Include(t => t.vari)
         .ToList()
         .FirstOrDefault();

ctx.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1).ToList();

谢谢!

2 个答案:

答案 0 :(得分:1)

as codelahiru&& hbulens指出,你错过了ID的bi。

免责声明:我是该项目的所有者Entity Framework Plus

Query IncludeOptimized功能允许同时使用include进行过滤并优化查询性能(支持EF5,EF6)

var aa = ctx.aa
            .IncludeOptimized(t => t.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1))
            .FirstOrDefault();

文档:EF+ Query IncludeOptimized

答案 1 :(得分:0)

这不是最高效的查询。删除ToList()

会更好
 var aa = ctx.aa.Include(t => t.vari).ToList().FirstOrDefault(); 

 // You missed the variable before ID
 ctx.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1).ToList();