代码之家  ›  专栏  ›  技术社区  ›  Brian J. Hakim

并发检查失败,层次数据ef 4.0

  •  0
  • Brian J. Hakim  · 技术社区  · 15 年前

    实体框架4.0有问题

    我有一个分层表类别:id,name,parentcategory,timestamp

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

    我正在使用自我跟踪实体“category”来管理我的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. 查询为“更新类别集名称=…”!!!!!!!!

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

    如何在并发检查中使用分层数据?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Brian J. Hakim    15 年前

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

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

    1)在EDMX模型的类别实体中创建自关联。在“引用约束”中,通过parentcategory_id属性创建与父实体的链接。

    2)创建类别ste的新实例。

    3)设置关系:

    NewCategory.ParentCategory_Id = 45;
    

    4)应用更改、保存更改。