How do I set a field to DBNull in Entity Framework

2019-06-16 11:20发布

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.

3条回答
孤傲高冷的网名
2楼-- · 2019-06-16 11:22

I never used entity-framework but can you turn a variable into a nullable type?

something like

dim entityVar as nullable(of date)

then you can do the =nothing and it will stay nothing.

but like I said, I never used entity-framework

while looking on google I found that bug report on Microsoft Connect

查看更多
不美不萌又怎样
3楼-- · 2019-06-16 11:23

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

查看更多
可以哭但决不认输i
4楼-- · 2019-06-16 11:35

Set the field value to null. The Entity Framework will translate this to System.DBNull.

查看更多
登录 后发表回答