DateTime, DateTime? и LINQ

Когда я получаю запись с помощью LINQ, который имеет поле DateTime, только ToString () доступен.

Где все другие методы DateTime?

Я должен Преобразовать. ToDateTime DateTime? то, что Поле возвращается?

Каково различие между (Датой и временем) и (DateTime?)

11
задан ctrlShiftBryan 4 October 2008 в 02:58
поделиться

4 ответа

Если DateTime? Вы имеете в виду a Nullable<DateTime>, затем можно добраться DateTime значение через DateTime?.Value свойство.

16
ответ дан 3 December 2019 в 03:37
поделиться

В SQL Вам установили поле DateTime для Разрешения Пустого указателя. Затем в LINQ, когда Вы собираетесь получить доступ к полю.NET не знает, является ли поле действительно датой или нет, который является, почему необходимо Преобразовать. ToDateTime () перед любыми методами даты становятся доступными Вам.

Если поле будет всегда содержать дату, установить столбец базы данных на NOT NULL, и необходимо быть в порядке.

2
ответ дан 3 December 2019 в 03:37
поделиться

Конфликт пространства имен в стороне, я знаю, что дата и время SQL имеет другую эпоху (и поэтому другой диапазон допустимых дат), чем дата и время C#.

Попытайтесь отправить a new DateTime() к хранимой процедуре и видят то, что я имею в виду.

0
ответ дан 3 December 2019 в 03:37
поделиться

В SQL DateTimes разрешают быть пустыми. В C# DateTimes не может быть пустым. Можно читать немного о nullable типах значения. Так как переменные определенного типа значения не могут быть пустыми, универсальный класс был создан для обработки этой ситуации. Это называют Nullable <>, и это обычно пишется с вопросительным знаком после типа.

Для использования этих значений, Вы захотите проверить.HasValue свойство. Это - булевская переменная, которая знает, существует ли значение в объекте, или это является пустым. После того как Вы проверили, что.HasValue свойство верно, можно безопасно использовать.Value свойство..Value свойство будет иметь тип DateTime.

9
ответ дан 3 December 2019 в 03:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: