2014-04-08 51 views
1

請將我的SQL轉換爲LINQ。我真的很絕望。它包括多重過濾(2)。將我的代碼SQL轉換爲LINQ?

SELECT  dbo.EmployeeAccess.EmpNo, 
       dbo.View_SystemAdminMembers.LNameByFName, 
       dbo.View_SystemAdminMembers.GroupName, 
       dbo.View_SystemAdminMembers.Role, 
       dbo.View_SystemAdminMembers.Active, 
       dbo.View_SystemAdminMembers.EmpNo AS Expr4, 
       dbo.View_SystemAdminMembers.RoleID 
    FROM  dbo.EmployeeAccess 
    INNER JOIN dbo.View_SystemAdminMembers 
    ON   dbo.EmployeeAccess.GroupID = dbo.View_SystemAdminMembers.GroupID 
    WHERE  (dbo.EmployeeAccess.EmpNo = '50') 

非常感謝你提前。

+2

在此鏈接上給出示例http://itworksonmymachine.wordpress.com/2009/09/27/sql-to-linq-cheat-sheet/ – samar

+0

而這個https://www.linqpad.net/ – samar

+0

感謝那。我會盡力實施。不幸的是,我的linqpad不轉換我的SQL語句,只有C#,VB和F#選項。我想我在那裏看錯了地方,並不確定我是否已經足夠努力地尋找它。 – user3483341

回答

1

請試試下面的代碼片段。

var result =from e in context.EmployeeAccess 
      join v in context.View_SystemAdminMembers on e.GroupID equals v.GroupID 
      Where e.EmpNo == 50 
      select new { e.EmpNo,v.LNameByFName,v.GroupName,v.Role,v.Active,a.RoleID,v.EmpNo as VEmpNo }; 

注意:上下文是您的DB上下文對象。

讓我知道是否有任何問題。

1
var results = (from ea in DbContext.EmployeeAccess 
       join sam in DbContext.View_SystemAdminMembers on ea.GroupId equals sam.GroupId 
       where ea.EmpNo = '50' 
       select new { 
       ea.EmpNo, 
       sam.LNameByFName, 
       sam.GroupName, 
       sam.Role, 
       sam.Active, 
       Expr4 = sam.EmpNo, 
       sam.RoleID 
       }; 

你沒有提到你的數據庫上下文是什麼,你必須自己填寫。

1
var res = (from x in ctx.EmployeeAccess 
      join y in ctx.View_SystemAdminMembers on x.GroupId equals y.groupId 
      where x.EmpNo = '50' 
      select new 
      { 
       x.EmpNo, 
       y.LNameByFName, 
       y.GroupName, 
       y.Role, 
       y.Active, 
       Expr4 = y.EmpNo, 
       y.RoleID 
      }); 

注意:做使用=加盟的時候,但equals