2013-05-15 2 views
1

У меня есть запрос SQL. Я хочу преобразовать его в запрос LINQ. UserLinks и UserRoles - это классы C#, которые представляют таблицы dbase.не удалось написать запрос Linq

select distinct UserLinks.LinkID from UserLinks 
    where RoleID in (select RoleID from UserRoles where UserID=1) and UserLinks.Enable='true' 
+0

Вы можете также показать нам, что вы пробовали в LINQ? – DavidB

ответ

4
var roleIds = UserRoles.Where(u => u.UserID == 1) 
          .Select(r=>r.RoleID) 
          .ToList(); 
var result = UserLinks.Where(u => roleIds.Contains(u.RoleID) && u.Enable) 
          .Select(l => l.LinkID) 
          .Distinct() 
          .ToList(); 
+0

Я получаю ошибку «Ошибка преобразования при преобразовании значения nvarchar« true »в тип данных int.» для строки var result = tblUserLinks.Where (u => roleIds.Contains (u.RoleID) && u.Enable) – user2381733

+0

Enable - логическое поле (true, если ссылка доступна пользователю false в противном случае) – user2381733

+0

error-Operator '==' не может применяться к операндам типа «bool» – user2381733

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