2014-09-29 34 views
-2

我正在開發在線商店。我保留添加的項目在餅乾和結帳時,我將訂單放在數據庫中。在我的DB我有兩個表orders,orderItems在插入後立即獲取自動增量值

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

在存儲過程中,可以使用這裏描述的OUTPUT子句:http://stackoverflow.com/questions/10999396/how-do-i-use-an-insert-statements-output-clause-to-get身份價值 – 2014-09-30 00:20:14

+0

你認爲scope_identity具有哪些併發性問題?我已經用了很多次,並沒有發現它想要... – 2014-09-30 01:58:26

回答

0

我認爲你可以在你的訂單表中添加一列,並存儲插入發生的日期和時間爲毫秒。在執行插入操作之前,將此值分配給本地變量並嘗試查詢。這解決了你的併發問題。

相關問題