3

我正在为我的大学编写简单的程序。我创建了一个实体框架模型,绘制图表,从模型创建数据库,在我的数据库上应用 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 时,无法在表“发件人”中插入标识列的显式值。

我试图寻找错误,但我对实体框架了解不多,也找不到任何具体的东西。

任何人都可以帮忙吗?

4

1 回答 1

1

该错误与 Entity Framework 无关,它与 SQL Server 有关,更具体地说与 Identity 列有关。

我的猜测是这SenderID是一个身份列。这意味着数据库负责为该字段分配顺序值,并且您不能为其指定值(除非您使用IDENTITY_INSERT,如错误消息所示)。

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

于 2012-11-07T21:55:18.387 回答