LINQ Query ничего не возвращает - PullRequest
1 голос
/ 22 апреля 2010

Почему этот запрос возвращает 0 строк?

Есть запись, соответствующая аргументам.

SomeDataContext db = new SomeDataContext(ConnString);

return db.Deafkaw.Where(p => 
      (p.SomeDate1 >= aDate && 
         p.SomeDate1 <= DateTime.Now) &&
      (p.Year == aYear && p.IsSomething == false)
  ).ToList();

Я что-то упустил?

На столе Глухой

SomeDate1 = 20.04.2010 11:32:17 Год = 2010 IsSomething = False

... помимо других столбцов меня не интересуют условия.

Мне нужно SomeDate1 между датами, которые я даю. IsSomething = False и Year = 2010.

Ответы [ 4 ]

3 голосов
/ 22 апреля 2010

Вы не назначаете результат чему-либо, поэтому он отбрасывается. Попробуйте это:

var results = db.Deafkaw.Where(p => 
         (p.ImerominiaKataxorisis >= aDate && 
          p.ImerominiaKataxorisis <= DateTime.Now) &&
         (p.Year == etos && p.IsYpodeigma == false)
     ).ToList();

Обновление: вы изменили вопрос, так что теперь я не уверен, что это правильный ответ. Можете ли вы разместить код, где вы вызываете этот метод?

2 голосов
/ 22 апреля 2010

Трудно ответить на ваш вопрос без дополнительной информации. Проверка следующих пунктов может помочь вам найти проблему:

  • Если вы удалите предложение Where и напишите Deafkaw.ToList(), что вы получите?
  • Какое значение aDate и etos?
  • Можете ли вы дважды проверить состояние? Требуете ли вы, чтобы все подусловия выполнялись одновременно? Существуют ли такие данные, если вы печатаете всю DeaFkaw структуру данных?
  • Можете ли вы попробовать удалить некоторые подусловия, чтобы посмотреть, даст ли это вам какие-то результаты?
0 голосов
/ 23 апреля 2010

Использовать профилировщик SQL. Посмотрите на SQL-запрос, который генерируется. Запустите SQL-запрос вручную и посмотрите, вернетесь ли вы какие-либо записи.

0 голосов
/ 22 апреля 2010

Попробуйте

Deafkaw.Where(p => (p.ImerominiaKataxorisis >= aDate && p.ImerominiaKataxorisis <= DateTime.Now &&
            p.Year == etos && p.IsYpodeigma == false)).ToList();
...