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' の ID 列に明示的な値を挿入できません。

エラーを探していましたが、エンティティ フレームワークについてあまり詳しくなく、具体的なものを見つけることができませんでした。

誰でも助けることができますか?

4

1 に答える 1

1

エラーは Entity Framework に関するものではなく、SQL Server、より具体的には Identity columnに関するものです。

私の推測では、それSenderIDは ID 列です。これは、データベースがこのフィールドに連続した値を割り当てる責任があり、その値を指定することは許可されていないことを意味します (IDENTITY_INSERTエラー メッセージが示すように、 を使用する場合を除く)。

したがって、newSender.SenderID = 0;コードから行を削除すると、問題が解決するはずです。

于 2012-11-07T21:55:18.387 に答える