2016-06-26 25 views
0

我需要我的上下文通过条件包含sonns,我需要未删除的行(逻辑删除)。实体框架仅包含条件

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

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

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

谢谢!

+0

'ctx.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1).ToList();'您错过了bi的ID。否则,你可以提到你遇到的错误吗? – SilentCoder

+0

你是对的! (我认为这个问题的想法很清楚,尽管有错误......) –

+0

好听。然后你可以投我的评论。 ;) – SilentCoder

回答

1

由于codelahiru & & hbulens指出的那样,你错过了ID双向的ToList()。

免责声明:我的项目Entity Framework Plus

查询IncludeOptimized功能允许用包括筛选和优化,同时查询性能的所有者(支持EF5,EF6)

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

文档:EF+ Query IncludeOptimized

+0

看起来很美!但我不能EF Plus :( –

+0

是否有一个原因,你不能使用第三方库?代码是免费的和开源的,所以如果你想要的话你可以从GitHub获取源代码或者联系我,我会发送你只有EF + Query IncludeOptimized源代码的zip文件。 –

+0

谢谢你,你真好,我会问我的老板 –

0

这不会是最高性能的查询。这将是更好下降

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(); 
+0

正是我所做的... –

+0

请编辑更多的信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。我们在这里努力成为知识的资源。 – abarisone

+0

@abarisone通常我会同意你的看法,但问题的范围很小,几乎没有必要解释(这只是一个错字)。 – hbulens