How do I set a field to DBNull in Entity Framework

送分小仙女□ 提交于 2019-12-23 07:57:50

问题


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.


回答1:


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




回答2:


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




回答3:


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



来源:https://stackoverflow.com/questions/820752/how-do-i-set-a-field-to-dbnull-in-entity-framework

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!