2010-09-08 65 views
8

我正在使用MVC webform將記錄插入到具有多個子記錄的數據庫中。在我的代碼隱藏中,我首先使用dataRepository.Add(xx)創建一個新的主記錄。現在我需要添加5個需要新創建記錄ID的子記錄。我如何檢索?ASP.NET MVC獲取最後添加的記錄的標識

+2

如何您的數據存儲庫來實現? Linq的實體? Linq to SQL?輸入數據集?需要代碼。 – villecoder 2010-09-08 12:47:01

+1

不是MVC Webform是一個矛盾嗎? – Martin 2010-09-08 12:50:21

+2

只是一句話:不要在ASP.NET MVC中使用代碼隱藏文件! – davehauser 2010-09-08 13:00:27

回答

23

假設xx是你的模型,它的主鍵是標識,你可以得到的Id你插入的數據是這樣的:

// at this point xx.Id == null 
db.XX.AddObject(xx); 
db.SaveChanges(); 
// now: xx.Id > 0 
int id = xx.Id; 
1

您應該將所有5條記錄加上主記錄一直提交到您的數據層,然後在您的業務層中執行任何驗證。然後,根據DL的實施情況,保存主記錄,返回ID,在子記錄上設置父ID並保存。在一次交易中做到這一切,你應該沒問題。

請詳細介紹您的數據訪問層。

如果使用MS SQL Server,您可以在存儲過程中使用Scope_Identity()來獲取插入到標識列中的最後一個標識值。看到這個MSDN article

如果使用NHibernate的你在同一個會話中添加他們和NHibernate負責生成負責將用正確的ID記錄的SQL。

2

如果您正在使用ORM(例如實體框架),您應該能夠創建記錄和關聯記錄,通過將關聯記錄添加到主對象的集合中或者以某種方式設置它們,然後調用save方法在上下文中。這將爲您做所有與ID等鏈接。

你是如何進行數據訪問的?

相關問題