实现与EF4的识别关系

时间:2010-09-14 15:06:42

标签: visual-studio-2010 entity-framework-4

我目前处于需要删除实体而无法访问关联的ObjectContext的情况。我读到了关于识别关系的内容,它们似乎正是我所需要的:我想删除一个对象,一旦它的“父”对象不再引用它。

我正在使用Visual Studio 2010 Premium从edmx文件生成我的数据库。据我所知,我需要将“父”对象的外键包含在我的“子”对象表的主键中。但是,我找不到告诉Visual Studio执行此操作的方法。

有人可以帮我解决这个问题吗?我完全走错了路,还是我错过了某个地方?

2 个答案:

答案 0 :(得分:2)

我终于明白了:

转到您的Child实体并创建标量属性ParentId。将此属性设置为实体键(使其成为主键,以及您的Child实体的Id属性)。接下来转到ParentChild关系并添加参照约束。约束的主体是您的父母,而受抚养者是您的孩子。依赖属性必须是您刚刚在Child上创建的属性(即ParentId)。保存一切,你很高兴。

基本上,此博客文章中描述为“方案2”:http://mocella.blogspot.com/2010/01/entity-framework-v4-object-graph.html

答案 1 :(得分:0)

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