代码之家  ›  专栏  ›  技术社区  ›  Konrad Viltersten

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

  •  0
  • Konrad Viltersten  · 技术社区  · 9 年前

    我已经定义了这张精美的桌子。

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

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

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

    现在,我确实明白为什么它认为人头数可以为空,但这没有任何意义。驴不可能有 无效的 头部。如果没有指定其他内容,它可以有7。(嗯,从动物学角度来说,这没有任何意义,但让我们假设我们在另一个遵循我的SQL魔法规则的星球上)。

    我如何让EF理解默认值为7,并且不会有空头驴?

    1 回复  |  直到 9 年前
        1
  •  4
  •   sstan    9 年前

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

    如果不希望为空,则必须明确定义为:

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