LINQ查询复杂多对多实体

时间:2017-10-05 17:20:22

标签: c# entity-framework linq

我首先使用Entity Framework 6代码,而且我使用的是此模型

enter image description here

我需要在 InformesRecepcionFacturasEspanaC_Productos 中获取所有 Id ,并为每个Id获取所有 Id Cantidad in AlbaranesEspanaC_Productos

我不知道如何编写查询,因为我要遍历两个多对多的关系。

任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

这取决于您希望如何查看数据,但这是一种方法(假设AlbaranesEspanaC_Productos表中的Id是一个int,而Cantidad是一个字符串,并假设您的数据库上下文的名称是DbContext): / p>

List<int> ProductosIds = DbContext.InformesRecepcionFacturasEspanaC_Productos.Select(x => x.Id).ToList();
var IdAndCantidads = DbContext.AlbaranesEspanaC_Productos.where(x => ProductosIds.Contains(x.IdAlbaranesEspanaC)).Select(new { Id = x.Id, cantidad = x.Cantidad }).ToList();

这是返回匿名类型的列表。您也可以使用字典。然后,您可以根据需要对该列表进行排序/分组。