我已经找到了很多关于如何使用存储过程选择多个结果集的信息,但是没有关于如何使用linq查询的实质性信息。
例如,我可以使用类似
的方式执行返回多组结果的子查询var query = (from school in context.Schools
where school.id == someId
select new
{
subSetA = (from student in context.Students
select student).ToList(),
subSetB = (from building in context.Buildings
select building).ToList(),
}).First();
query.subSetA; //Access subSetA
query.subSetB; //Access subSetB
哪个工作正常,但是如果我只想在不查询学校表的情况下选择subSetA和subSetB呢?我想选择两个独立的数据集,在一次查询中发送到服务器。
有关如何使用EF 6执行此操作的任何信息都会很棒。
答案 0 :(得分:0)
嗯,我确信有很多方法可以做到这一点,但是如果你想避免在混合中引入第三个DbSet
......
var query = (from s in context.Students.Take(1)
select new
{
subSetA = context.Students.ToList(),
subSetB = context.Buildings.ToList(),
})
然后,您可以使用query.ToList()
或使用query.Load()
并使用context.Students.Local
等工作。