EF 6 , sử dụng bài viết 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();
}
Cập nhật: Để tránh lỗi "Giá trị rõ ràng phải được chỉ định cho cột nhận dạng trong bảng 'TableName' khi IDENTITY_INSERT được đặt thành BẬT hoặc khi người dùng sao chép đang chèn vào cột nhận dạng NOT FOR REPLICATION", bạn nên thay đổi giá trị của StoreGeneratedPattern thuộc tính của cột danh tính từ Danh tính thành Không có trong trình thiết kế mô hình.
Lưu ý, việc thay đổi StoreGeneratedPattern thành Không sẽ không chèn được đối tượng không có id chỉ định (theo cách thông thường) với lỗi "Không thể chèn giá trị rõ ràng cho cột nhận dạng trong bảng 'TableName' khi IDENTITY_INSERT được đặt thành TẮT".