关于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)