linq, где утверждение с ИЛИ - PullRequest
2 голосов
/ 03 марта 2011

Я использую linq-to-sql для такого запроса:

public static List<MyModel> GetData(int TheUserID, DateTime TheDate)

using (MyDataContext TheDC = new MyDataContext())
{
   var TheOutput = from a in TheDC.MyTable
     where a.UserID == TheUserID
     (where a.Date1.Month == TheDate.Month && where a.Date1.Year == TheDate.Year)
     OR
     (where a.Date2.Month == TheDate.Month && where a.Date2.Year == TheDate.Year)
     group a by a.Date1.Date AND by a.Date2.Date into daygroups
     select new MyModel{...};

Как мне написать это, чтобы оператор OR и оператор AND работали? Я пытался положить || и && на месте, но он не работает, и я застрял в этом запросе.

По сути, он должен возвращать список дней в течение месяца, а в MyModel я считаю. Например, в столбце я считаю количество назначений, назначенных на определенный день, а в другом столбце - количество назначенных посещений в тот же день. Date1 относится к дате, когда назначаются встречи, а Date2 относится к датам, на которые посещаются встречи. Так, например, 3 марта 2011 года я установил 4 встречи (для них Date1 - 3/11/2011), и они будут установлены на различные даты в будущем (Date2). В тот же день (на этот раз 3 марта - Дата 2) я также посетил несколько других встреч, которые были назначены на другие даты в прошлом.

Спасибо за любые предложения.

1 Ответ

3 голосов
/ 03 марта 2011
using (MyDataContext TheDC = new MylDataContext())
{
   var TheOutput = from a in TheDC.MyTable
     where a.UserID == TheUserID &&   
     (a.Date1.Month == TheDate.Month && a.Date1.Year == TheDate.Year)
     ||
     ( a.Date2.Month == TheDate.Month && a.Date2.Year == TheDate.Year)
     group a by a.Date1.Date AND by a.Date2.Date into daygroups
     select new MyModel{...};

Попробуйте удалить 4 лишних "где" и измените ИЛИ на ||.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...