如何在Entity Framework中将字段设置为DBNull

时间:2009-05-04 16:13:41

标签: entity-framework dbnull

如何在Entity Framework中将字段设置为DBNull?字段是强类型的,因此您不能将它设置为等于DBNull.Value,我没有找到任何方法将字段设置为DBNull。看起来这是必要的事情,但经过大量的谷歌研究后,我一无所获。

我正在尝试使用vb.net在Entity Framework中设置日期时间字段。这需要我写

 myEntity.mydate = Nothing

这不会将字段设置为null,而是将其设置为默认日期值,该值不是SQL Server中的有效日期值。

3 个答案:

答案 0 :(得分:14)

如果列在数据库中可以为空,那么结果类也将具有可为空的属性。

例如,如果Order表格中有一个名为Datetime的可归CreatedDate列,那么生成的Order类将如下所示:

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

如果在调用createdDate时_ ObjectContext.SaveChanges()没有值,则System.DBNull将作为插入或更新命令的一部分自动发送到数据库。

希望这会有所帮助 亚历

答案 1 :(得分:8)

将字段值设置为null。实体框架会将其转换为System.DBNull

答案 2 :(得分:0)

我从未使用过实体框架,但是你可以将变量变成可以为空的类型吗?

类似

dim entityVar as nullable(of date)

然后你可以做=什么都没有,它什么都不会。

但就像我说的那样,我从未使用过实体框架

在Google上查看时,我发现bug report on Microsoft Connect