c# - Entity Framework 从另一个 E.F 选择查询获得的 ID 列表中选择

标签 c# .net asp.net-mvc

enter image description here

我正在尝试使用 where 语句从 E.F 查询中获取 ItemsEntity。该条件从另一个返回超过 1 个 item_id 的 E.F 查询获取 item_id。

var item_id = (from n in db.OrderDetail where n.OrderId == id select n.item_id);
var itemEntity = (from m in db.ItemsEntity where *m.item_id==item_id* select m);

最佳答案

当您想在 Where 子句中使用集合时,可以使用 Contains 方法

var listOfIds = (from n in db.OrderDetail where n.OrderId == id select n.item_id);
var itemEntity = (from m in db.ItemsEntity where listOfIds.Contains(m.item_id) select m);

请记住,使用上面的代码,itemEntity 变量将被收集。如果您想要单个项目,请根据需要使用 FirstOrDefault()First() 等方法。

上面的代码也可以写成如下的LINQ方法链

var listOfIds = db.OrderDetail.Where(n=>n.OrderId == id).Select(x=>x.item_id);
var itemEntity = db.ItemsEntity.Where(m=>listOfIds.Contains(m.item_id));

关于c# - Entity Framework 从另一个 E.F 选择查询获得的 ID 列表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45941679/

相关文章:

c# - Facebook 喜欢 Ext3 按钮的通知图标

c# - lambda 表达式中的时间跨度

c# - 从非托管 C/C++ 代码调用 C# .NET 方法

asp.net-mvc - 使用Asp.Net C#MVC4和Json,如何使我的图表根据页面数据表进行更新

c# - 如何使用 .Net 编写漂亮格式的 JSON 文件

c# - Entity Framework 5.0 代码中第一个一对一和一对多的关系

c# - 简洁轻量的API : REST+JSON in . NET

.net - 如何在 OnStart 方法中停止服务?

c# - 如何从 list<string> 中获取第一个和最后一个值?

表单中的 Javascript 验证