MVC3 C # Linq (где / если) - PullRequest
       1

MVC3 C # Linq (где / если)

0 голосов
/ 10 ноября 2011

Я пытаюсь вставить оператор if в поле Where,

q = from vw_masterview in ctx.vw_MasterViews
where 
vw_masterview.LastDate <= toDate &&
vw_masterview.OfficeId == MemberRepository.AllowedOfficeId

AllowedOfficeId может быть нулевым, я хотел бы добавить, если statment

q = from vw_masterview in ctx.vw_MasterViews
    where 
    vw_masterview.LastDate <= toDate &&
    ***if (MemberRepository.AllowedOfficeId != null)***
    vw_masterview.OfficeId == MemberRepository.AllowedOfficeId

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Вы можете переписать свой запрос, используя свободное обозначение, и применить дополнительный оператор Where, если AllowedOfficeId не равно нулю:

var query = ctx.vw_MasterViews.Where(v => v.LastDate <= toDate);
if (MemberRepository.AllowedOfficeId != null)
{
    query = query.Where(v => v.OfficeId == MemberRepository.AllowedOfficeId);
}

Затем можно выполнить запрос или продолжить его создание, например, с помощью метода Select для извлечения определенных свойств или проекта в анонимный тип или новый класс.

2 голосов
/ 10 ноября 2011
q = from vw_masterview in ctx.vw_MasterViews
    where
        vw_masterview.LastDate <= toDate &&
        (
            (MemberRepository.AllowedOfficeId != null) &&
            (vw_masterview.OfficeId == MemberRepository.AllowedOfficeId)
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...