小编Gof*_*off的帖子

Linq-to-sql不会产生多个外连接?

关于linq-to-sql我有一个奇怪的问题,我真的试过搜索它.我正在设计一个sql数据库,最近刚尝试从中检索一个对象.

问题在于多个连接.我的所有表都使用identity-columns作为主键.

Db设计如下:

MasterTable:Id(主键,标识列,int),MasterColumn1(nvarchar(50))

Slave1:Id(主键,标识列,int),MasterId(int,主键 - > MasterTable Id),SlaveCol1

Slave2:Id(主键,标识列,int),MasterId(int,主键 - > MasterTable Id),SlaveColumn2

使用的代码:

var db = new TestDbDataContext() { Log = Console.Out };
var res = from f in db.MasterTables
          where f.MasterColumn1 == "wtf"
          select new
                     {
                         f.Id, 
                         SlaveCols1 = f.Slave1s.Select(s => s.SlaveCol1),
                         SlaveCols2 = f.Slave2s.Select(s => s.SlaveColumn2)
                     };
foreach (var re in res)
{
    Console.Out.WriteLine(
        re.Id + " "
      + string.Join(", ", re.SlaveCols1.ToArray()) + " "
      + string.Join(", ", re.SlaveCols2.ToArray())
    );
}
Run Code Online (Sandbox Code Playgroud)

日志是:

SELECT [t0].[Id], [t1].[SlaveCol1], ( …
Run Code Online (Sandbox Code Playgroud)

c# outer-join linq-to-sql

7
推荐指数
1
解决办法
806
查看次数

标签 统计

c# ×1

linq-to-sql ×1

outer-join ×1