代码之家  ›  专栏  ›  技术社区  ›  Chris

实施与EF4的关系识别

  •  2
  • Chris  · 技术社区  · 14 年前

    我目前的情况是,我需要删除实体,而无需访问相关的 ObjectContext

    我正在使用visualstudio2010premium从edmx文件生成数据库。据我所知,我需要将“parent”对象的外键包含在“child”对象表的主键中。但是,我找不到方法告诉visualstudio这样做。

    2 回复  |  直到 11 年前
        1
  •  2
  •   Chris    14 年前

    转到子实体并创建标量属性ParentId。将此属性设置为实体键(使其与子实体的Id属性一起成为主键)。接下来转到您的父子关系并添加引用约束。约束的主体是您的父母,依亲亲属是您的子女。从属属性必须是您刚刚为您的孩子创建的属性(即ParentId)。保存好一切,你就可以走了。

    基本上这在这篇博文中被描述为“场景2”: http://mocella.blogspot.com/2010/01/entity-framework-v4-object-graph.html

        2
  •  0
  •   Morteza Manavi    14 年前

    不,你走对了路。您需要做的是在EDM设计器中,创建两个实体(父实体和子实体)后,右键单击父实体并选择Add=>Association。。。然后指定多重性和导航属性名称,然后单击“确定”。您将看到VS创建了一个关联,当您从模型生成一个数据库时,这个关联将导致这两个表之间的关系。
    在子实体上创建类似ParentID的属性,因为一旦创建关联,设计器将自动创建该属性。
    此外,您可以在EDM设计器中右键单击关联并选择属性,然后在“End2 OnDelete”选项上选择“Cascade”,这样在删除父级时将删除子级。