Linq Learning (5)-Multi-table join and linq learning table join
This section describes the internal and external connections.
1. join
Linq to SQL
From a in Blog_Usersjoin B in Blog_UserInfoon a. UserId equals B. IDselect new {NickName = a. NickName, real name = B. RealName}
SQL
SELECT [t0]. [NickName] AS [NickName], [t1]. [RealName] AS [real name] FROM [Blog_User] AS [t0] inner join [Blog_UserInfo] AS [t1] ON ([t0]. [UserId]) = [t1]. [ID]
Lambda
Blog_Users. Join (Blog_UserInfo, a => (Int32 ?) (A. UserId), B => B. ID, (a, B) => new {NickName = a. NickName, real name = B. RealName })
2. External Connection
Linq to SQL
From a in Blog_Usersjoin B in Blog_UserInfoon a. UserId equals B. IDinto abfrom c in AB. DefaultIfEmpty () select new {NickName = a. NickName, real name = c. RealName}
SQL
SELECT [t0]. [NickName] AS [NickName], [t1]. [RealName] AS [real name] FROM [Blog_User] AS [t0] left outer join [Blog_UserInfo] AS [t1] ON ([t0]. [UserId]) = [t1]. [ID]
Lambda
Blog_Users. GroupJoin (Blog_UserInfo, a => (Int32 ?) (. UserId), B => B. ID, (a, AB) => new {a = a, AB = AB }). selectdefaults (temp0 => temp0. AB. defaultIfEmpty (), (temp0, c) => new {nickname = temp0.a. nickName, real name = c. realName })