C# LoadWith对于一对多关联不正确地工作
例如,我有相关的表C# LoadWith对于一对多关联不正确地工作,c#,linq-to-sql,C#,Linq To Sql,例如,我有相关的表XOrder和XUser。我在编辑器中将它们添加到DBML文件中,并在那个里创建了一对多关联。现在我在XOrder中有了属性User,在XUser中有了Orders。我想用user在单个SQL查询中加载所有用户的订单。我尝试了DataLoadOptions.LoadWith方法,发现我做不到这一点。当我执行dataContext.GetTable().ToArray()Linq To SQL生成一个SQL查询以获取数据库中的所有用户,然后生成无数个SQL查询以获取每个用户的所有
XOrder
和XUser
。我在编辑器中将它们添加到DBML文件中,并在那个里创建了一对多关联。现在我在XOrder
中有了属性User
,在XUser
中有了Orders
。我想用user在单个SQL查询中加载所有用户的订单。我尝试了DataLoadOptions.LoadWith
方法,发现我做不到这一点。当我执行dataContext.GetTable().ToArray()
Linq To SQL生成一个SQL查询以获取数据库中的所有用户,然后生成无数个SQL查询以获取每个用户的所有关联订单-这不是我想要的。有没有办法告诉Linq to SQL改用JOIN
实体框架如何解决这个问题
更新。所以。。。使用
LoadWith
代替默认延迟加载的原因是什么?两者都创建N+1个SQL查询。是的,cann。Join
而不是。ToArray
=>我知道我可以Join
或者更好的是,GroupJoin
,但我想使用Linq to SQL透明地加载所有内容,有可能吗?@Denis,FWIW,根据我的经验,EF将执行一个查询,但每个子行返回一行,为每个子级复制来自父级的所有数据。根据具体情况,这可能是理想的,也可能不是理想的。