2016-09-29 107 views
0

我是新來的linq加入實體。我有一個查詢在SQL Server中,並希望將其轉換爲LINQ to Entities。如何將sql查詢轉換爲Linq到實體?

有人可以提供相同的解決方案嗎?我們有任何在線工具將SQL查詢轉換爲LINQ到實體嗎?

SELECT R.ID,r.Name,u.UserId 
     FROM Roles R 
     Left JOIN UserRoles U ON r.Id = u.RoleId 
     AND [UserId] = '5' 
     where [UserId] IS NULL 
+0

你應該看看linqpad。這是一個很好的實驗工具!我已經使用了很多年了......它會幫助你學習linq。 – Kixoka

回答

0
var list = (from r in context.Roles 
    join ur in context.UsersRoles on r.Id equals ur.RoleId && ur.UserId='5' into x 
    from y in x.DefaultIfEmpty()   
    where r.UserId ==null 
    select new Object 
    { 
     Id = r.Id, 
     Name = r.Name, 
     ur.UserId 
    }).ToList(); 

注:不明白你的第二個用戶ID IS NULL邏輯

1

DefaultIfEmpty將導致左外連接,所以當你想要一個簡單的左加入你應該做的如下:

var list = (from r in context.Roles 
    join u in context.UsersRoles on r.Id equals u.RoleId && u.UserId='5' into x 
    where r.UserId == null 
    select new 
    { 
     r.Id, 
     r.Name, 
     u.UserId 
    }).ToList();