这与Property(() => p).HasDatabaseGeneratedOption()
电话一起使用。是或许可以关闭默认的DB值生成?
答案 0 :(得分:28)
EF使用DatabaseGeneratedOption
来确定如何处理新实体的键列值。如果DatabaseGeneratedOption
为Identity
,EF知道可以忽略属性设置的值,并且应该使用来自数据库的值。如果DatabaseGeneratedOption
为None
EF,则会将该属性的值作为键列的值插入数据库。
在Code First中 - 当Code First约定找到一个可以作为给定实体的键属性的int属性时,默认情况下它们会将此列配置为标识列(这意味着数据库将生成键列/属性的值) 。如果您想自己设置键值,DatabaseGeneratedOption.None
允许您覆盖它。
答案 1 :(得分:3)
其效果是将EF配置为在插入数据库后不获取新的标识值。