将我的代码SQL转换为LINQ?

时间:2014-04-08 04:27:54

标签: c# sql sql-server linq

请将我的SQL转换为LINQ。我非常绝望。它包括多重过滤(2)。

    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')

提前非常感谢你。

3 个答案:

答案 0 :(得分: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 };

注意:context是您的DB Context对象。

如果有任何疑虑,请告诉我。

答案 1 :(得分: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
               };

你没有提到你的数据库环境是什么,你必须自己填写。

答案 2 :(得分: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
             });

注意:加入 NOT 时使用=equals