【发布时间】:2023-03-12 12:20:01
【问题描述】:
我的问题是我有一个无法修改的现有表,其中包含可为空的字段。
我有一个模型,我不想要可以为空的属性。
我想要做的是有一个约定(我想是这样),当从数据库中遇到 DBNull 时,我可以根据模型属性类型设置 默认值 使用。
- ints/double = 0
- 字符串 = ""
- bool = 假
很确定这在 NHibernate 中很简单,但我不知道如何在 EF 中执行此操作。
我正在使用来自 nuget 的最新 EF 包,我认为它是 EF 4.2。
【问题讨论】:
-
您为什么不希望 DBMS 为您管理这个?这似乎是您想要集中管理的东西。
-
具有公制垃圾负载的旧系统。更改表架构可能会影响我无法处理的某处的某些内容。使我的模型可以为空以匹配数据库是最后的选择。我相信当 EF 从数据库绑定到模型时,应该可以在某处引入检查约定。
-
我想知道你为什么不想要可为空的属性。 Nullable
就是为这种情况而设计的。 -
@allentranks - 我不认为
Nullable<T>可以原生处理 DBNull,你确定它适用吗?
标签: c# .net entity-framework-4.1