2011-04-03 26 views
0

第一組實體中的外鍵是否會使用新添加的實體的IDENTITY進行更新?這可能嗎 ?現有實體是否可以通過將其添加到其集合導航屬性中而與其他新添加到ObjectContext的實體相關聯?

我有一個Users表和Agencies表。

用戶有一個可以爲null的AgencyId外鍵。

所以在我的實體框架ObjectContext中,我將有一個代理實體,它將用戶作爲用戶類型集合的導航屬性。

我向Agency實體添加一個新對象,然後我知道我可以將Users對象添加到該實體實體,並將它們保存到數據庫。

但我想要的是:

我想已經存在的用戶添加到該機構的實體,因此,對於在datbase新機構產生什麼身份,它進入用戶的外鍵「AgencyId」表格添加到本機構的用戶。

這可以使用實體框架來完成嗎?

回答

1

當然可以做到。只需要:

var agency = new Agency { ... }; 

foreach (var user in context.Users.Where(u => ...)) 
{ 
    agency.Users.Add(user); 
} 

context.Agencies.Add(agency); 
context.SaveChanges(); 

用戶實體中的所有外鍵都將被設置爲插入代理的新ID。

+0

事實上,我之前試過,而且出現了一些錯誤,所以我想可能是我錯過了一些東西,所以我在這裏問了。我會再試一次。 - 謝謝。 – teenup 2011-04-04 05:01:11

相關問題