【问题标题】:Nullable for ORM ObjectsORM 对象可以为空
【发布时间】:2013-07-03 16:06:08
【问题描述】:

根据阅读Nullable Types,我了解将Nullable 用于数据库中可能为空的原始类型是正确的。

对象有必要使用? (Nullable) 类型吗?

例子:

public DateTime? DateCreated {get; set; }

 public DateTime DateCreated {get; set; }

【问题讨论】:

  • 更正:对数据库中可能为空的值类型使用Nullable<T> 是正确的。其中包括DateTime(和DateTimeOffset)。

标签: c# orm nullable


【解决方案1】:

你的例子是正确的。您将需要 DateTime? 让 ORM(比如 NH)将其视为可空类型。对于不需要打问号的对象。

另外,在旁注中,问号 T?是Nullable<T> 的别名。编译器会将T? 翻译成Nullable<T>。如果你想要一个证明,你可以在调试器上检查这个:)

【讨论】:

    【解决方案2】:

    在您的示例中,Nullable<T> 是有效的,因为 DateTime 不是引用类型。但是,对于对象(以及从对象派生的类型),您不能使用Nullable<T>,因为编译器会抛出错误;见:C# nullable string error

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2011-03-03
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      相关资源
      最近更新 更多