2015-09-26 41 views
1

我正在使用代码优先方法,并且因为我没有.edmx文件,因此我无法更改StoreGeneratedPattern属性。那么我如何让EF自动递增ID? (现在所有的ID都默认零)如何在使用代码优先时使实体框架自动递增ID

+0

您要查找的是'DatabaseGeneratedAttribute','DatabaseGeneratedOption'为'Identity'。 – Hopeless

+0

当我使用DatabaseGeneratedOption.None它不会自动递增,但是当我使用DatabaseGeneratedOption.Identity它甚至不会生成Id(使其为空) – Kipras

回答

1

主键通过自动递增(默认行为)产生下列是否有任何的成立:

  • 类包含一个名为属性“ID”
  • 类包含一个名为的$ className + “ID”
  • 感兴趣的属性注解财产与KeyAttribute

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

+0

我使用Key属性并将该属性命名为Id – Kipras

+0

什么是财产的类型? 'int'还是别的东西? –

1

有指定使用EF代码第一键三种方式:

  • 使用内置的代码公约(他的第一次两发子弹)
  • 使用直接KeyAttribute数据注解的属性/字段
  • 使用Fluent API指定关键字段