我正在为我的大学编写简单的程序。我创建了一个实体框架模型,绘制了图表,从该模型创建了数据库,在数据库上应用了SQL文件,现在我试图向数据库中添加一些项目。
我这样做是这样的:
using (NewsletterEntities context = new NewsletterEntities())
{
Sender newSender = new Sender();
newSender.Login = Login.Text;
newSender.Password = Password.Text;
newSender.Port = 23;
newSender.SMTP = SMTP.Text;
newSender.Email = Email.Text;
newSender.SenderID = 0;
context.Senders.AddObject(newSender);
context.SaveChanges();
}
当我尝试执行它时,它会弹出内部异常:
当IDENTITY_INSERT设置为OFF时,无法为表“发件人”中的身份列插入显式值。
我试图寻找该错误,但是我对实体框架了解不多,也找不到任何特定的东西。
有人可以帮忙吗?
最佳答案
该错误与实体框架无关,而与SQL Server有关,更具体地说与the Identity column有关。
我的猜测是SenderID
是一个标识列。这意味着数据库负责为该字段分配顺序值,并且不允许您为其指定值(除非您使用IDENTITY_INSERT
,如错误消息所提示)。
因此,从代码中删除newSender.SenderID = 0;
行应该可以解决该问题。