2013-12-03 6 views
0

Могу ли я использовать предложение if с Linq где?Хо использовать If условие в LINQ Где предложение

например: У меня есть таблица с 4-мя поданными (Id, UserId, Type, Sing).

Я хочу выбрать запись, чтобы идентификатор пользователя был 1 и если Type = "None", Sing должен True.

(from d in db.Receive 
where ((((d.SendType == "None") ? ((d.Signed) ? true : false) : true)) && userid==1) 
select d).ToList(); 

когда я использую

((d.SendType == "None") ? ((d.Signed) ? true : false) : true) 

это выберите записи, если тип = "None", Sing должен True. но когда вы добавляете условие пользователя, не возвращайте записи.

ответ

2

Не лучше:

from d in db.Receive 
where ((d.SendType == "None" && d.Signed) || d.SendType != "None") && userid == 1) 
select d 
0

и так?

(((d.SendType == "None") && (userid == 1)) ? ((d.Signed) ? true : false) : true) 
+0

Спасибо, но это выберите все записи, где! ((D.SendType == "None") && (userid == 1)) –

0

Theres много скобок там ... если я вас правильно понял идентификатор пользователя == 1 используется независимо, так почему бы не просто

where (((d.SendType == "None" && userid == 1) ? ((d.Signed) ? true : false) : true))) 
       select d).ToList(); 
+0

Спасибо, но это выберите все записи, где! ((D.SendType == "None") && (userid == 1)) –

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