实体框架4个,用于数字字段不尊重数据库约束
问题描述:
说,我定义在DB表如下实体框架4个,用于数字字段不尊重数据库约束
表:富
PKID - INT,伯,自动增量
酒吧 - INT,允许空=假,没有默认
现在,当从数据库中生成EF模型时,'Bar'字段被正确地定义为Nullable = false,Type = Int32。
现在,当我做了以下
var foo = new Foo();
context.AddToFoos(foo);
context.SaveChanges();
该行被插入到数据库和“酒吧”有0值?我会期待一个例外,因为Bar尚未设置。我意识到0不是null,但它也不是我设置的值。
这是设计还是我误解了一些东西?
答
它不是空的,因此是一个int。 int的默认值是0.所以DB很高兴,框架也很好。
是的,我明白,但从技术上来说,价值尚未确定,首先就是约束所在。很奇怪。 – bic 2011-05-24 13:39:13
这是一个DB约束。对于.NET,Int32的默认值为0.这就是为什么我说,数据库没有抱怨。 – 2011-05-24 13:42:09
谢谢,所以我可能不得不改写/转发我的问题。你知道我在EF寻找甚么可能吗? – bic 2011-05-24 13:44:18