12

我正在尝试在具有预定义主键值的数据库中创建一条记录。我知道如何使用 sql 执行此操作,但我想知道 EF 是否可以为我执行此操作?否则,我将不得不为插入创建一个存储过程。

4

1 回答 1

12

如果您将实体的StoreGeneratedPattern属性设置为“无”,您为其指定的实体键值将被传递到数据库。

如果此属性设置为“Identity”“Computed”,则无法控制在 DB 中为该列设置的值。

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

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

于 2010-07-26T08:03:30.223 回答