Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LoadWith对于一对多关联不正确地工作_C#_Linq To Sql - Fatal编程技术网

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将执行一个查询,但每个子行返回一行,为每个子级复制来自父级的所有数据。根据具体情况,这可能是理想的,也可能不是理想的。