EF 6 methode, met behulp van het msdn-artikel:
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();
}
Bijwerken: Om de fout "Expliciete waarde moet worden opgegeven voor identiteitskolom in tabel 'TableName' ofwel wanneer IDENTITY_INSERT is ingesteld op AAN of wanneer een replicatiegebruiker invoegt in een NOT FOR REPLICATION identiteitskolom", moet u de waarde van StoreGeneratedPattern
Let op, het wijzigen van StoreGeneratedPattern naar Geen zal het invoegen van een object zonder gespecificeerde id (normale manier) mislukken met de fout "Kan geen expliciete waarde voor identiteitskolom in tabel 'TableName' invoegen wanneer IDENTITY_INSERT is ingesteld op OFF".