Как мне установить поле для DBNull в Entity Framework - PullRequest
8 голосов
/ 04 мая 2009

Как установить поле DBNull в Entity Framework? Поля строго типизированы, поэтому вы не можете установить его равным DBNull.Value, и я не нашел никакого способа установить поле в DBNull. Кажется, что это необходимо сделать, но после долгих исследований Google я ничего не нашел.

Я пытаюсь установить поле даты и времени в Entity Framework, используя vb.net. Это требует от меня, чтобы написать

 myEntity.mydate = Nothing

Это не устанавливает в поле значение null, а вместо этого устанавливает в него значение даты по умолчанию, которое не является допустимым значением даты в SQL Server.

Ответы [ 3 ]

14 голосов
/ 06 мая 2009

Если в базе данных столбец может иметь значение NULL, у результирующего класса также будет свойство NULL.

Например, если в таблице Order есть столбец Datetime, который может иметь значение NULL, называемый CreatedDate, то полученный класс Order будет выглядеть примерно так:

public partial class Order: EntityObject
{
  ...
  private DateTime? _createdDate;
  ...
}

Если _ createdDate не имеет значения при вызове ObjectContext.SaveChanges(), System.DBNull будет автоматически отправлено в базу данных как часть команды вставки или обновления.

Надеюсь, это поможет Alex

8 голосов
/ 04 мая 2009

Установите значение поля на null. Entity Framework переведет это на System.DBNull.

0 голосов
/ 04 мая 2009

Я никогда не использовал Entity-Framework, но можете ли вы превратить переменную в обнуляемый тип?

что-то вроде

dim entityVar as nullable(of date)

тогда вы можете ничего не делать, и ничего не останется.

но, как я уже сказал, я никогда не использовал Entity-Framework

при поиске в Google обнаружил, что отчет об ошибке в Microsoft Connect

...