使用分层数据EF 4.0进行并发检查失败

时间:2010-07-04 17:31:22

标签: asp.net-mvc linq entity-framework linq-to-entities

我遇到了Entity Framework 4.0的问题

我有一个分层表类别:Id,Name,ParentCategory_Id,timestamp

“timestamp”字段标记为“Concurrency Mode”=“Fixed”

我正在使用自我跟踪实体“类别”来管理我的MVC应用程序中的类别实体。

情况:

  1. 我创建STE“NewCategory”,
  2. 设置字段名称='bla-bla'
  3. 像这样创建新的STE“ParentCategory”: var ParentCategory = new Category{Id=45}; ParentCategory.MarkAsUnchanged(); NewCategory.Parent = ParentCategory;
  4. 在我的STE上下文中调用ApplyChanges()方法并调用SaveChanges()
  5. 查询是“更新类别集名称= ....”!!!!!!
  6. 如果我NewCategory.Parent = null或在模型方案中设置"Concurrncy Mode" = "Node",一切都很有效。

    如何通过并发检查使用分层数据?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。 解决方案是只有在您使用FK Assotiation属性时,EF4.0才能管理这些情况。

在此示例中,正确的方法是:

1)在edmx模型中的Category实体中创建自我关联。在“参照约束”中,通过ParentCategory_Id属性创建与父实体的链接。

2)创建分类STE的新实例。

3)设置关系:

NewCategory.ParentCategory_Id = 45;

4)ApplyChanges,SaveChanges。