【发布时间】:2011-05-24 14:09:03
【问题描述】:
这是对这个问题的跟进
Entity Framework 4 not respecting database constraints for numeric fields
有没有可能实现如下
表:Foo
PkId - int、primary、autoincrement
Bar - int,允许 null=false,没有默认值现在在生成 EF 模型时 'Bar' 字段是数据库 正确定义为 Nullable=false, Type=Int32。
现在当我执行以下操作时
var foo = new Foo();
context.AddToFoos(foo);
context.SaveChanges();该行被插入到数据库中,'Bar' 的值为 0?
我期望的是应用程序级别的异常,因为从技术上讲,应用程序并未设置 Bar。它的 .Net 默认值不会自动转换为特定数据库的有效值。
行为应该类似于数据库中的字符串列。字符串得到了正确处理,因为它们的状态为 null,而且翻译得很好。
对于数字列,这通常是如何实现的?
【问题讨论】: