我有一个定义了PK的实体,它是底层数据库中的Identity列。在大多数情况下,我只是让SQL Server为我生成值。但是,在某些情况下,我想提供一个值而不是SQL Server生成一个值。我能用EF 5(使用Code First)做到这一点吗?
答案 0 :(得分:0)
如果是SQL Server,则使用ExecuteSQLCommand
发送所需的命令我创建此测试作为示例
[Fact]
private void IdentityInsertOK()
{
var sql = "set identity_insert ConfigSettings on " +
"delete from ConfigSettings where id =2 " +
"insert into ConfigSettings (Id,Name, value) values (2,'test ','testval') " +
"set identity_insert ConfigSettings off ";
using (var Db = SettingsHelper.CreateContext(ConnectionType.Syrius))
{
Db.Database.ExecuteSqlCommand(sql);
Db.SaveChanges();
}
}