How do I set a field to DBNull in Entity Framework

Eric picture Eric · May 4, 2009 · Viewed 24.8k times · Source

How do you set a field to DBNull in Entity Framework? The fields are strongly typed so you cannot set it equal to DBNull.Value and I did not find any method to set a field to DBNull. It seems like this is a necessary thing to do, but after much Google research I found nothing about it.

I am trying to set a datetime field in Entity Framework using vb.net. This requires me to write

 myEntity.mydate = Nothing

This does not set the field to null but instead sets it to the default date value which is not a valid date value in SQL Server.

Answer

Alex James picture Alex James · May 5, 2009

If a column is nullable in the database the result class will have a nullable property too.

For example if a Order table has a nullable Datetime column called CreatedDate, then the resulting Order class will looks something like this:

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

If the _createdDate has no value when you call ObjectContext.SaveChanges() a System.DBNull will automatically be sent to the database as part of insert or update command.

Hope this helps Alex