当IDENTITY_INSERT设置为OFF时,无法在表'LeistungGruppe'中为标识列插入显式值

时间:2013-08-20 07:16:10

标签: entity-framework

我正在尝试通过调用AddToLeistungGruppe将EntityObject添加到我的数据库。

在这种情况下,LeistungGruppe是我的带有Primary_Key LeistungGruppe_ID的表,标识为true,标识增量为1,种子为1。

我经常搜索这个问题,很多人也犯了同样的错误。 他们被告知只需将StoreGeneratedPattern设置为Identity即可解决问题。

我试了一下,仍然遇到了同样的问题。 我是实体框架的新手,并不知道如何解决这个问题。

不知怎的,我认为模型没有更新可能是因为即使我切换这些设置我一遍又一遍地得到同样的错误。

感谢每一位帮助。

1 个答案:

答案 0 :(得分:1)

您正在尝试使用您设置的显式ID将对象保存到数据库,而数据库希望自己生成该值。也就是说,对象中的LeistungGruppe_ID属性设置为0以外的其他属性,并且不将其标识为EF框架作为标识字段。如果您希望数据库按照帖子建议生成Id,则应使用[Key]属性修饰Object中的相应属性。

如果您使用的是Fluent API,那么您应该在DBContext中使用这样的内容:

protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
    modelBuilder.Entity<LeistungGruppe>().Property(x => x.LeistungGruppe_ID).StoreGeneratedPattern = StoreGeneratedPattern.Identity;
    base.OnModelCreating(modelBuilder);
}