(首先抱歉的英語不好)實體框架4.3.1的DbContext添加對象與現有引用的對象
我是新來的實體框架和我做測試的一點點。讓我們假設我有2個對象是POCO對象。人員和地址。
我的場景是,我想添加一個新的人到DbContext有一個已經存在的對象的引用。兩個實體之間的連接是一個Many:Many關係。
using (var t = new Tww.SV.Models.Model.Portal.SVPortalEntities())
{
testaddress = (from c in t.Adresses
select c).ToList().FirstOrDefault();
}
var newPerson = new Person();
newPerson.Name = "Henry";
newPerson.Adresses.Add(testaddress);
using (var k = new Tww.SV.Models.Model.Portal.SVPortalEntities())
{
k.Persons.Add(newPerson);
k.SaveChanges();
}
我現在做的問題是,一旦人是增加了一個額外的地址(具有相同的價值觀,但一個新的密鑰)將被創建。我如何將現有的引用添加到新的對象而不是創建一個新的對象?
最簡單的辦法是重寫的SaveChanges,通過已保存的所有實體和那些(ID> 0),將其設置爲「不變」,或者,如果你想堅持最終取得了修改,「修改時間」 – UrbanEsc 2012-03-14 17:36:48