當我們使用Entity框架同時插入多個行時,最好逐個添加這些對象,然後在最後提交,而不是每次添加和合並。實體框架在foreach中獲取多個插入的ID
那麼在那種情況下,如何獲得這些插入的ID?
例子:
foreach (var item in list)
{
Subscription subscription = new Subscription();
subscription.Amount = item.ItemTotal;
this.ClientRepositories.LiveData.AddToSubscriptions(subscription);
// LiveData is db context via webservice proxy
// how to get IDS of these insertions if you do not commit each time?
int id = subscription.Id;
someOtherOperation(id); //i need to insert ID for each row that was inserted
}
this.ClientRepositories.LiveData.SaveChanges();
如果我使用提交內部的各個它增加了新的對象,我可以很容易地得到最新的插入的ID的時間,但它不是好每次向多行,我聽到提交。
即使你在同一時間添加了一堆,ID字段,如果你的實體應保存到數據庫後進行更新。如果你的實體之間有適當的導航屬性,你可以插入到多個表中,在一次提交中直接引用實體而不是id。 – ESG
你可以給你兩個表的名字和他們的關係。 –