2013-09-26 29 views
0

在實體框架的C#的,如果我有一個具有與其他類的關係的POCO類 - 例如,產品和產品分類,使每個產品必須有一個分類列的ID存在於類表,我可以構建POCO類的關係很好,並調用repository.save。此時,如果它們不存在,它將在數據庫中創建類別和產品行。C連接的對象#實體框架的更新,只有當改變

如果我嘗試插入一個具有相同類別對象的新的第二個產品,那麼它會再次嘗試保存產品和類別,並且它抱怨更新了0行,因爲我具有[ConcurrencyCheck]屬性上課。

我希望它表現得如此,如果我救第二個產品,以及相關的類對象已經存在並沒有改變,這將只是沒有更新,但仍然保存產品。

這是可能的嗎?

回答

0

第一個問題是它是斷開的圖形,那麼你必須根據情況來寫。

DbSet.Add() will try to add all 

    DbSet.Attach() will make sure context is aware of objects but state of elements will be unchanged. 

    Context.Entry(entity).State=EntityState is how you can say what has been modified, added or deleted. 

我希望這會有所幫助。 (PluralSight,Julie Lerman,EF in Enterprise)