EF 6 metoda, korzystając z artykułu 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();
}
Aktualizacja: Aby uniknąć błędu „Wyraźna wartość musi być określona dla kolumny tożsamości w tabeli 'TableName', gdy IDENTITY_INSERT jest ustawione na ON lub gdy użytkownik replikacji wstawia do kolumny tożsamości NOT FOR REPLICATION”, należy zmienić wartość StoreGeneratedPattern właściwość kolumny tożsamości od Identity do Brak w projektancie modeli.
Uwaga, zmiana StoreGeneratedPattern na None spowoduje niepowodzenie wstawienia obiektu bez określonego identyfikatora (w normalny sposób) z błędem „Nie można wstawić jawnej wartości dla kolumny tożsamości w tabeli „TableName”, gdy IDENTITY_INSERT jest ustawione na OFF”.