当identity insert设置为on时,我会收到Identity insert错误

时间:2018-04-22 09:09:24

标签: c# asp.net asp.net-mvc entity-framework

我收到了这个错误。我有桌子'游戏'。在游戏桌上我只有一个标识列id。当我更改Only Order Value,它是int而不是identity时,我总是得到这个错误。例如,我想从数据库中删除对象并添加另一个:

--webroot-path

1 个答案:

答案 0 :(得分:0)

删除对象的最佳做法是:

var gg = db.games.Find(Id);
if(gg != null)
{
    db.games.Attach(gg);
    db.games.Remove(gg);
    db.SaveChanges();
}

我不知道你的情况但是,更新Row而不是再次删除和插入会不会更好?

修改
根据您的评论错误是:“当IDENTITY_INSERT设置为OFF时,无法在表'游戏'中为标识列插入显式值”

当您尝试更新已定义Identity的列时会发生此错误,这意味着它将自动生成。通常,只有其记录需要为唯一的列才会定义为自动生成 考虑到此操作可能有害( EF 也知道它有害),没有直接的方法可以从EntityFramework启用 Identity_Insert

但你可以这样做:
1-启用Identity_Insert:

context.ExecuteStoreCommand("SET IDENTITY_INSERT [dbo].[MyUser] ON");

2-从此列中删除标识。