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