EF 6 メソッド、msdnの記事を使用:
using (var dataContext = new DataModelContainer())
using (var transaction = dataContext.Database.BeginTransaction())
{
var user = new User()
{
ID = id,
Name = "John"
};
dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON");
dataContext.User.Add(user);
dataContext.SaveChanges();
dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF");
transaction.Commit();
}
更新: 「IDENTITY_INSERTがONに設定されている場合、またはレプリケーションユーザーがNOT FOR REPLICATION ID列に挿入している場合は、テーブル'TableName'のID列に明示的な値を指定する必要があります」というエラーを回避するには、StoreGeneratedPattern<の値を変更する必要があります。 / strong> IdentityからNoneまでのID列のプロパティ モデルデザイナーで。
StoreGeneratedPatternをNoneに変更すると、IDが指定されていないオブジェクトの挿入に失敗し(通常の方法)、「IDENTITY_INSERTがOFFに設定されている場合、テーブル'TableName'にID列の明示的な値を挿入できません」というエラーが発生します。