【问题标题】:How to make Entity Framework auto-increment IDs when using code-first使用代码优先时如何使实体框架自动增加 ID
【发布时间】:2015-09-26 14:37:15
【问题描述】:

我使用的是代码优先方法,因此我没有.edmx 文件,因此我无法更改StoreGeneratedPattern 属性。然后如何使 EF 自动增加 ID? (现在所有的 ID 默认都是零)

【问题讨论】:

  • 您要查找的是DatabaseGeneratedAttributeDatabaseGeneratedOptionIdentity
  • 当我使用 DatabaseGeneratedOption.None 时,它​​不会自动递增,但是当我使用 DatabaseGeneratedOption.Identity 时,它甚至不会生成 Id(使其为空)

标签: c# entity-framework ef-code-first code-first


【解决方案1】:

如果满足以下任一条件,则会生成一个主键自动递增(默认行为):

  • 该类包含一个名为“Id”的属性
  • 该类包含一个名为$className + "Id"的属性
  • 感兴趣的属性用KeyAttribute注释

可能是您的属性被命名为“ID”而不是没有 Key 属性的“Id”?

【讨论】:

  • 我使用Key属性,属性名为Id
  • 房产类型是什么? int 还是别的什么?
【解决方案2】:

先使用EF代码指定key有3种方式:

  • 使用内置代码约定(他的前两个项目符号)
  • 直接在属性/字段上使用 KeyAttribute 数据注释
  • 使用 Fluent API 指定关键字段

【讨论】:

    猜你喜欢
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 2011-08-05
    相关资源
    最近更新 更多