实体框架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很高兴,框架也很好。

+0

是的,我明白,但从技术上来说,价值尚未确定,首先就是约束所在。很奇怪。 – bic 2011-05-24 13:39:13

+1

这是一个DB约束。对于.NET,Int32的默认值为0.这就是为什么我说,数据库没有抱怨。 – 2011-05-24 13:42:09

+0

谢谢,所以我可能不得不改写/转发我的问题。你知道我在EF寻找甚么可能吗? – bic 2011-05-24 13:44:18