代码之家  ›  专栏  ›  技术社区  ›  ProfK

为什么存在“DatabaseGeneratedOption.None”?

  •  13
  • ProfK  · 技术社区  · 13 年前

    这与 Property(() => p).HasDatabaseGeneratedOption() 呼叫可能是关闭默认DB值生成吗?

    2 回复  |  直到 13 年前
        1
  •  33
  •   Luke Puplett    11 年前

    EF使用 DatabaseGeneratedOption 以确定如何处理新实体的键列的值。如果 数据库生成选项 Identity EF知道可以忽略属性设置为的值,并且应该使用来自数据库的值。如果 数据库生成选项 None EF将属性的值作为键列的值插入数据库。

    在Code First中,当Code First约定找到一个可以作为给定实体的键属性的int属性时,默认情况下,它们会将此列配置为标识列(这意味着数据库将生成键列/属性的值)。 DatabaseGeneratedOption.None 如果您想自己设置键值,可以覆盖此项。

        2
  •  2
  •   qujck Steven    13 年前

    其效果是将EF配置为在插入数据库后不获取新的标识值。