2010-07-04 24 views
0

我有一個問題與實體框架4.0併發檢查失敗,分層數據EF 4.0

我有一個分級表類別:ID,姓名,ParentCategory_Id,時間戳

的「時間戳」字段被標記爲「併發模式「=」已修正「

而我正在使用自我追蹤實體」類別「來管理我的MVC應用程序中的類別實體。

的情況:

  1. 我創建STE 「NewCategory」
  2. 設置字段名稱= '喇嘛喇嘛'
  3. 創造新的STE 「ParentCategory」 是這樣的: var ParentCategory = new Category{Id=45}; ParentCategory.MarkAsUnchanged(); NewCategory.Parent = ParentCategory;
  4. 呼叫在我的STE上下文中應用ChangeChanges()方法並調用SaveChanges()
  5. 查詢是「Update Category set Name = ....」!!!!!!

如果我做NewCategory.Parent = null或在模型方案中設置"Concurrncy Mode" = "Node"一切正常。

如何在併發檢查中使用分層數據?

+0

你可以請張貼整個代碼塊嗎? – jfar 2010-07-05 05:57:53

+0

問題和問題不清楚,請重新提示。 – 2011-03-31 15:17:43

回答

0

我解決了這個問題。 解決方案是,只有使用FK Assotiation屬性時,EF4.0才能管理這些情況。

在此示例中以正確的方式做:

1)EDMX模型創建類別實體自我assotiation。在「引用約束」中,通過ParentCategory_Id屬性與父實體建立鏈接。

2)創建類別STE的新實例。

3)設置關係:

NewCategory.ParentCategory_Id = 45; 

4)ApplyChanges,調用SaveChanges。