将IDENTITY_INSERT与EF4一起使用

Pau*_*opf 12 entity-framework identity-insert

我试图在db中创建一个具有预定义主键值的记录.我知道如何用sql做这个,但我想知道EF是否可以为我做这个?否则,我将不得不为插入创建存储过程.

Dev*_*art 12

如果您的实体的StoreGeneratedPattern属性设置为"无",则为其指定的实体键值将传递给数据库.

如果将此属性设置为"Identity""Computed",则无法控制将在DB中为此列设置的值.

因此,如果数据库中有一个自动递增的列,并且ADO.NET实体数据模型向导已StoreGeneratedPattern为您设置,则可以使用XML编辑器在模型的SSDL部分中手动将此属性更改为"无",并且然后启用 IDENTITY_INSERT.

ObjectContext.ExecuteStoreCommand如果使用EF4或使用该ObjectContext.Connection.StoreConnection属性执行SQL命令SET IDENTITY_INSERT <Your_Table> ON(在EF1和EF v4中),则可以使用该方法.

  • 在最新的EF4.3中,我们使用的DbContext与前一个ObjectContext非常相似.语法略有变化,我打开标识插入的代码行如下所示:`CurrentDataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [MyDataTable] ON",new object [] {});` (4认同)