将 IDENTITY_INSERT 与 EF4 结合使用

发布于 2024-09-12 02:22:05 字数 92 浏览 4 评论 0原文

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

I am trying to create a record in the db that has a predefined primary key value. I know how to do this with sql, but I was wondering if EF can do this for me? Otherwise, I will have to create a stored proc for the inserts.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事和酒 2024-09-19 02:22:05

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

如果此属性设置为“身份”“计算”,则无法控制在数据库中为此列设置什么值。

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

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

In case you have the StoreGeneratedPattern attribute set to "None" for your entity, the Entity Key value you specify for it will be passed to database.

In case this attribute is set either to "Identity" or to "Computed" there is no way to control what value will be set to this column in DB.

So, if you have an auto-incremented column in your database and the ADO.NET Entity Data Model wizard has set the StoreGeneratedPattern for you, you can manually change this attribute to "None" in the SSDL part of the model using XML Editor, and then enable IDENTITY_INSERT.

You can use the ObjectContext.ExecuteStoreCommand method if you are using EF4 or use the ObjectContext.Connection.StoreConnection property to execute a SQL command SET IDENTITY_INSERT <Your_Table> ON (both in EF1 and EF v4).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文