c# - C# Entity-Framework 中对象模型的过滤数据

标签 c# asp.net-mvc entity-framework

假设 A 为具有属性 ID(int) 和 Status(Bool) 的对象模型 和 B 作为对象模型也有 ID(int) 和 Status(Bool)

我想从 A 中获取按其属性过滤的数据。如果它是一个像 "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# Entity Framework 的新手。

最佳答案

如果 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))

关于c# - C# Entity-Framework 中对象模型的过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32025158/

相关文章:

c# - 在构造函数中自动调用父类(super class)方法

c# - Entity Framework 更新未保存

ajax - 包含文件的 Jquery ajax 表单提交

c# - 同时将 Entity Framework 与 SQL Server 和 SQLite 数据库一起使用

c# - EF 迁移没有挂起的更改,但它仍然提示有挂起的更改。 EF 如何跟踪这个?

c# - 在 Odata OrderBy 中更改字段类型

C# SSL 连接被主动拒绝

c# - 如何在不打开新窗口的情况下在表单之间切换? C# 语言

c# - ASP MVC 上 ViewModel 字段的条件验证

database - 默认 ASP.NET MVC 3 项目帐户 Controller 如何工作