帮助转换为linq

帮助转换为linq,linq,Linq,嗨,有人能帮忙把这个查询转换成linq吗 SELECT DISTINCT Users.IDUsr, Users.Name FROM [UserGroups.UnitType] INNER JOIN [UserGroups.Units] ON [UserGroups.UnitsTypes].IDUGOUT = [UserGroups.Units].IDUGOUT RIGHT OUTER JOIN

嗨,有人能帮忙把这个查询转换成linq吗

SELECT DISTINCT Users.IDUsr, Users.Name
FROM         [UserGroups.UnitType] INNER JOIN
             [UserGroups.Units] ON 
             [UserGroups.UnitsTypes].IDUGOUT = [UserGroups.Units].IDUGOUT 
    RIGHT OUTER JOIN
                      Users INNER JOIN [Users.Groups] ON Users.IDUsr = [Users.Groups].IDUsr 
       INNER JOIN UserGroups ON [Users.Groups].IDUsrGrp = UserGroups.IDUsrGrp 
       ON [UserGroups.OrganizationUnits].IDUsrGrp = UserGroups.IDUsrGrp
WHERE     (Users.Removed = 0) AND ([UserGroups.UnitsTypes].Type <> 100) OR
                      ([UserGroups.UnitsTypes].Type IS NULL)
选择DISTINCT Users.IDUsr,Users.Name
来自[UserGroups.UnitType]内部联接
[UserGroups.Units]打开
[UserGroups.UnitsTypes].IDUGOUT=[UserGroups.Units].IDUGOUT
右外连接
用户在Users.IDUsr=[Users.Groups].IDUsr上内部加入[Users.Groups]
[Users.Groups]上的内部联接用户组。IDUsrGrp=UserGroups.IDUsrGrp
在[UserGroups.OrganizationUnits].IDUsrGrp=UserGroups.IDUsrGrp上
其中(Users.Removed=0)和([UserGroups.UnitsTypes].Type 100)或
([UserGroups.UnitsTypes]。类型为空)

我现在不知道linq,但是使用诸如和之类的工具应该能够帮助获得正确的语法。

我认为您的一些代码被剪裁了。它依赖于一个根本不存在的表

这是我所能做的最好的事情:

var query =
(
from u in Users
from g in u.UsersGroups
from un in g.Units.DefaultIfEmpty()
let t = un.UnitsType
where u.Removed == 0 && (t.Type <> 100 || t.Type == null)
select new { ID = u.IDUsr, Name = u.Name }
).Distinct()
var查询=
(
来自用户中的u
来自u.UsersGroup中的g
从un以g.Units.DefaultIfEmpty()表示
设t=un.UnitsType
其中u.Removed==0&(t.Type 100 | | t.Type==null)
选择新{ID=u.IDUsr,Name=u.Name}
).Distinct()

我看不出此表添加到[UserGroups.OrganizationUnits].IDUsrGrp上的from子句的位置