8

如何在实体框架中将字段设置为 DBNull?这些字段是强类型的,因此您不能将其设置为等于 DBNull.Value,而且我没有找到任何方法将字段设置为 DBNull。似乎这是必须做的事情,但经过大量谷歌研究后,我一无所获。

我正在尝试使用 vb.net 在实体框架中设置一个日期时间字段。这需要我写

 myEntity.mydate = Nothing

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

4

3 回答 3

16

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

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

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

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

希望这有助于亚历克斯

于 2009-05-05T20:55:59.310 回答
9

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

于 2009-05-04T16:17:04.357 回答
0

我从来没有使用过实体框架,但你能把一个变量变成一个可为空的类型吗?

就像是

dim entityVar as nullable(of date)

然后你可以做 =nothing 并且它不会留下任何东西。

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

在查看谷歌时,我发现Microsoft Connect 上的错误报告

于 2009-05-04T17:57:33.320 回答