2010-02-25 2 views
3

Привет, может кто-то помочь преобразовать этот запрос в 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 
         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) 
+0

Получить LINQPad и попробовать его –

+0

я не вижу, где эта таблица была добавлена ​​к из пункта: ON [UserGroups.OrganizationUnits] .IDUsrGrp –

ответ

1

Я думаю, что часть вашего кода обрезана. Он полагается на 1 таблицу, которой нет вообще.

Это лучшее, что я могу сделать с тем, что я вижу:

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() 
1

Я не знаю LINQ сразу стороны, но с использованием таких инструментов, как linqer и linqpad должны быть в состоянии помочь с получением правильного синтаксиса.

+0

уже пробовал: S без успеха – Luis

Смежные вопросы