实体框架多对多LINQ查询
本文关键字:查询 LINQ 实体 框架 | 更新日期: 2023-09-27 18:16:47
我有两个多对多关系的模型:
Example
和Sample
。EF在数据库中创建了三个表:
Examples
Samples
ExampleSamples
我试图从ExampleSamples
中选择所有示例,其中样本Id是在样本Id列表中。
我如何做到这一点?
我是这样做的:
var sampleids = new int[]{1,2,3};
var examples = db.Examples.Where(e=>e.Samples.Any(s=>sampleids.Contains(s.id));
你也可以用相交来代替任何/包含,你也可以通过SelectMany来做,但我认为这是最容易理解的。
这似乎适用于多对多,其中连接列表仅包含多对多中两个表中的pk:
int[,] courseIDs = new int[,] { 1,2,3 };
var students =
from s in dc.Students
from c in s.Courses
where courseIDs.Contains(c.CourseID)
select s;
https://smehrozalam.wordpress.com/2010/06/29/entity-framework-queries-involving-many-to-many-relationship-tables/