2015-08-15 32 views
3

假设A作为具有属性ID(int)和状态(布尔) 和B作为对象模型还具有ID(int)的对象模型和状态(布尔)在C#实体 - 框架对象模型的筛选数据

我想从A的数据过滤它的属性。如果SQL查询像 "select * from A where A.Status=True and A.ID in (Select ID from B Where B.Status=True), 我现在不如何使VAR C =该查询..

var c = A.Where(a=>a.Status==True && a.ID .....)我不知道如何申请“in”这里

我真的新的使用C#实体框架。

+0

如果你正确地设计数据库,表A和B应该有一个关系,然后导入到你的模型之后,应该有一些导航属性指向B,那么你可以轻松访问和检查e状态。这完全取决于您的数据库设计。 – Hopeless

+0

@Hopeless,谢谢,对于数据库和所有不是由我创建的模型感到抱歉,它来自服务器工作使用TFS进行练习。我只是可以在代码隐藏c#中进行命令行。现在,情景如何与我上面写的一样。假设这两者之间没有关系 – Ana

+0

如果没有关系,我认为您应该将查询转换为本地IEnumerable(使用ToList()或其他),那么您可以自由地执行各种LINQ。 – Hopeless

回答

2

如果A和B具有一定的关系,由名为AB导航属性来表示,那么查询可以简单这样的:

var c = A.Where(a=>a.Status && a.AB.Status); 

如果他们没有任何关系,那么你也可以直接查询这样的(虽然性能不会像上面一样好):

var c = A.Where(a=>a.Status && B.Where(b=>b.Status).Any(b=>b.ID == a.ID))