Как установить для Sql DateTime значение null из LINQ

У меня есть два случая, когда мне нужно установить поле DateTime в Sql на null. Я использую классы C # и LINQ to SQL. Я прочитал много вопросов о stackoverflow, которые похожи на мой вопрос, но все же я кормлю свой немного другим.

Когда мы добавляем нового клиента.

Соответствующий код:

 Customer customer = new Customer();
 customer.CustomerName = txt_name.Text;
 customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : //send null here;

customer.DOB is System.DateTime.

Я пробовал:

1)

 customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : SqlDateTime.Null;

Но это не удастся, поскольку SqlDateTime не может быть преобразован в System.DateTime.

2)

    DateTime? nullDateTime = new DateTime();
 customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : nullDateTime.Value

В этом случае сборка завершается успешно, но выдает исключение переполнения SqlDateTime.

Итак, как передать нулевое значение

Свойство члена DOB в LINQ Dataclass

enter image description here

Многие из них предлагают , чтобы установить для Auto Generated Value значение true и не вставлять никакого значения. Правда, во вставках работает.

Но теперь предположим, что уже существует запись о клиенте, в которой некоторое значение datetime установлено в поле DOB. Теперь пользователь хочет очистить это значение (удалить дату рождения), тогда в этом случае я должен передать нулевое значение с помощью UpdateOn, чтобы очистить дату и время, указанную в соответствующей строке клиента.

Заранее большое спасибо :)

5
задан Marshal 16 April 2011 в 08:34
поделиться