Я пытаюсь получить все строки с нулевой датой из объекта API. Но API Date2 имеет значение {1/1/0001 12:00:00 AM} и значение таблицы SQL имеет нулевое значение. Как будет проверять дату? с null или {1/1/0001 12:00:00 AM}?

var results = (from CustomerDemographic customerDemographic in customerData.Demographics Where customerDemographic.Date2 == null
                 select new Models.CommunityPreferences()
                  {
                      ....
                      ...
                   }).ToList();
0
James123 14 Май 2015 в 18:35
1
Вам нужно сделать Date2 nullable, объявив его как DateTime? вместо DateTime в самом классе, а затем использовать WHERE customerDemographic.Date2.HasValue == false
 – 
Der Kommissar
14 Май 2015 в 18:36
Попробуйте сравнить с DateTime.MinValue.
 – 
John Saunders
14 Май 2015 в 18:37
Я не могу преобразовать Date2 в значение NULL. потому что это сторонний объект API.
 – 
James123
14 Май 2015 в 18:38
1
Затем используйте DateTime.MinValue, как указано в опубликованном ответе.
 – 
Der Kommissar
14 Май 2015 в 18:38

1 ответ

Лучший ответ

Если вы получаете {1/1/0001 12:00:00 AM}, значит, это DateTime.MinValue , и вы не получите Nullable<DateTime> обратно. Вы можете изменить проверку следующим образом:

customerDemographic.Date2 == DateTime.MinValue

Но лучшим вариантом было бы изменить класс сопоставления для использования DateTime? или Nullable<DateTime> для свойства Date2. В настоящее время он использует DateTime, который не является Nullable.

3
Habib 14 Май 2015 в 18:36