使用无关联数据从多对多关系中获取值(LINQ)

时间:2015-06-11 19:50:34

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

我在MVC 4 / EF 6中设置了以下(简化)数据库。每个类在其模型中使用标准public virtual ICollection<SalesOrder> SalesOrders { get; set; }(反之亦然)引用另一个。我是EF和C#以及诸如此类(但不是SQL)的新手,所以这可能非常简单,但我不确定如何做到这一点:我需要编写一个函数来返回每个{{1与给定的SalesOrder.ExternalId相关联。这没有任何过滤,所以我知道这是错的,但这里是我一直在尝试的查询的想法:

OrderChangeNotice.Id

如何正确编写此查询?

简化数据库架构:

DB schema

如果有帮助,这里是表映射代码(在ocnRepository.SelectMany(n => n.SalesOrders.Select(o => o.ExternalId)).ToList(); 的映射文件中,OrderChangeNotice的映射中不存在类似的代码,因为它只需要一个代码。

SalesOrder

1 个答案:

答案 0 :(得分:0)

我更习惯NHibernate,但我认为它应该是这样的:

ocnRepository.SelectMany(n => n.SalesOrders)
             .Where(so => so.OrderChangeNoticeId == myOrderChangeNoticeId)
             .Select(o => o.ExternalId)
             .ToList();