在插入后立即获取自动增量值

时间:2014-09-29 23:06:53

标签: sql-server entity-framework

我正在网上商店工作。我将添加的项目保留在cookie中,在签出时,我将订单放在数据库中。在我的数据库中,我有两个表ordersorderItems

Order:
[Order_Id] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[Customer_Id] INT --FK--
....

OrderItems
[Order_Id] INT --FK to Order--
[Item_Id] INT --FK to Item table--

当我将订单放在订单表中时,我需要Order_Id才能正确放置订单商品。我知道SCOPE_IDENTITY会给我表中的最后一个标识,但是我认为这可能会导致一些并发问题。我使用的是EF6,所以即使我可以使用SCOPE_IDENTITY也不确定,但即使我仍然可以关注并发问题。 我想知道的是如何在插入后立即获得自动递增的身份?

我使用EF 6作为ORM,网站是用ASP.NET MVC C#编写的。

1 个答案:

答案 0 :(得分:0)

我认为您可以在订单表中添加一列,并将插入的日期和时间存储到毫秒。在执行插入之前将此值分配给局部变量,然后尝试查询该值。这解决了您的并发问题。