2010-04-17 58 views
1

我有一個EF 4.0的問題,我希望有人可以幫忙。我目前有一個實體,我希望以最後的勝利方式更新(即忽略併發檢查,只是用提交的內容覆蓋db中的內容)。看起來Entity Framework不僅在生成的sql的where子句中包含實體的主鍵,還包含任何外鍵字段。這很煩人,因爲它意味着我在wins語義上沒有得到最後的結果,並且需要知道fk字段在更新之前有什麼值,或者我得到併發異常。EF強制併發檢查

我知道這可以通過包括外鍵字段以及實體的導航屬性來短路。如果可能的話,我想避免這種情況,因爲它不是一個非常乾淨的解決方案。

我只是想知道是否有任何其他方式來覆蓋此行爲?它看起來更像是一個bug而不是一個功能。如果我指示它這樣做,但沒有能夠完全繞過併發,我沒有任何問題,因爲有很多有效的情況下,這是不需要的

+0

嗨,你可以請詳細說明在這個問題上的用一個例子?流動的比特(包括你以什麼順序更新的東西。)-Thanks 。 – 2011-03-31 15:20:42

回答

0

我不是100%肯定這會起作用,但我自己很好奇,並認爲我可能找到了解決方案。

如果你設置一個字段是不可變的(在我的情況下,我使用的ID(主鍵)。因爲這將永遠不會改變它永遠不會引發併發異常,因此揍你的條目[ConcurrencyCheck]屬性。

試一試,看看是否能解決您的問題。