2015-12-02 57 views
0

我使用foreach循環將多個對象保存到數據庫。 這些被保存後,我想用保存的對象的ID做些什麼。
這是我的插入循環:C#在將多個對象保存到數據庫後獲取一個List或一組id數組對象

foreach (var Object in ListOfObjects) 
{ 
    Object obj = new Object(); 
    obj.Objectvalue1 = Object.Value1; 
    obj.Objectvalue2 = Object.Value2 
    db.Objects.Add(obj);  
} 
db.SaveChanges(); 

我想要做的是以下幾點:

List<int> IDs = new List<int>(); 
foreach (var Object in ListOfObjects) 
{ 
    Object obj = new Object(); 
    obj.Objectvalue1 = Object.Value1; 
    obj.Objectvalue2 = Object.Value2 
    db.Objects.Add(obj); 
    IDs.Add(obj.ID) //this should be the Primary key 
} 
db.SaveChanges(); 

最後一個例子不會工作,因爲ID將清空,您首先要保存的數據要填充的Id的數據庫,但我不想爲我插入的每個對象保存。

我看到一些Questions獲得ID,但這些都是爲了插入一個單一的對象,而不是多個。

摘要:有沒有辦法獲得插入記錄的ID列表或數組。

+0

枚舉輕鬆地檢索在你的對象,你救了他們之後得到他們的ID – KiwiPiet

+0

@KiwiPiet wouldnt這給我所有的對象id從該表中,而不僅僅是插入的對象? – Djeroen

+0

很確定你可以在填充你的對象列表之後做一個AddRange,然後在SaveChanges之後你可以得到ID列表。而不是在foreach中迭代Add。 – ewahner

回答

1

您只需保存添加到數據庫中的已創建對象。所以,當你創建的數據對象,將其添加到列表,然後你做的SaveChanges後,每個這些對象都將有自己的ID,可以與

dataObjectList.Select((o) => o.ID).ToList(); 
+0

好的,謝謝!哇,它真的很容易。 – Djeroen

相關問題