如何让EF了解某些列不可为空?

时间:2015-12-24 21:43:52

标签: c# sql entity-framework null nullable

我已经定义了这个精美的表格。

create table WeirdDonkey (
  Tails int not null,
  Heads int default 7
)

当我在上面运行EF时,会创建两个字段,如下所示。

public int Tails { get; set; }
public Nullable<int> Heads { get; set; }

现在,我明白为什么它认为磁头的数量可以为空,但它没有任何意义。驴不能有 null 头。如果没有指定其他内容,它可以有7。 (嗯,这在动物学方面没有任何意义,但让我们假装我们在一个遵循我的SQL魔法规则的不同星球上。)

如何让EF了解默认值是7并且没有无头驴?

1 个答案:

答案 0 :(得分:4)

EF是对的。 Heads可以为空。如果在插入行后,您决定将Heads值更新为null,会发生什么。数据库不接受吗?是的,它会。

如果您不想要空值,则必须明确定义它:

create table WeirdDonkey (
  Tails int not null,
  Heads int not null default 7
)