如何使用Entity Framework将数据添加到SQL Server Express数据库

3

我正在为我的大学编写一个简单的程序。我创建了一个Entity Framework模型,绘制了图表,从模型创建了数据库,将SQL文件应用到了我的数据库中,现在我正在尝试向DB中添加一些项目。

我是这样做的:

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的“Senders”表中插入显式值。
我试图查找错误,但我对实体框架不太了解,找不到具体的信息。
有人能帮忙吗?
1个回答

1

这个错误与Entity Framework无关,而是与SQL Server有关,更具体地说是标识列

我猜测SenderID是一个标识列。这意味着数据库负责为该字段分配连续的值,并且您不允许为其指定值(除非您使用IDENTITY_INSERT,正如错误消息所建议的那样)。

因此,从您的代码中删除newSender.SenderID = 0;行应该解决问题。


我已经尝试过了,但没有成功。在 SQL 管理器中,我打开了标识规范,因为据我所知它可以自动递增 ID。 - Saajuu
3
你需要确保模型中SenderID正确定义,它的StoreGenerationPattern必须设置为Identity - marc_s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接