2013-05-06 60 views
0

我有一个PK定义的实体,它是底层数据库中的Identity列。在大多数情况下,我只是让SQL Server为我创造价值。但是,在某些情况下,我想提供一个值而不是SQL Server来生成一个值。我能用EF 5做到这一点吗(使用Code First)?实体框架5 - 代码优先 - 插入身份值?

+0

它的SQL侧由SET IDENTITY_INSERT 处理HTTP:// msdn.microsoft.com/en-us/library/aa259221(v=sql.80).aspx – 2013-05-07 03:10:35

+0

http://stackoverflow.com/questions/15509564/entity-framework-code-first-migrations-set-primary-key -值 – 2013-05-07 03:19:21

回答

0

如果是SQL服务器,然后发送命令需要使用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(); 
      } 

     }