Linq To Entities,使用一个查询选择多组数据

时间:2015-05-11 23:00:19

标签: c# linq entity-framework linq-to-entities entity-framework-6

我已经找到了很多关于如何使用存储过程选择多个结果集的信息,但是没有关于如何使用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执行此操作的任何信息都会很棒。

1 个答案:

答案 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等工作。