entity-relationship – 在子相关实体中没有后向引用的一对多

如果我在两个实体之间有一对多的关系(即Post和Comment),并将我的主类定义为:

public class Post {
    ...
    IList<Comment> Comments { get; set; }
}

但我的Comment子相关类没有Post类型的属性,因为从来没有必要从评论到发布.注释始终与主帖​​子实例一起显示.

然后我有一个存储过程返回两个结果集:与它们相关的帖子和​​注释.我将我的MapResultSet定义为

MapResultSet[] sets = new MapResultSet[2];

sets[0] = new MapResultSet(typeof(Post), posts);
sets[1] = new MapResultSet(typeof(Comment));

sets[0].AddRelation(sets[1], /* what goes here? */, "PostID", "Comments");

但这不起作用,因为Comment没有引用它的Post因此我没有任何东西来定义上层代码中的第二个参数.如果我提供string.Empty或null,如果无效的方法参数,我会得到一个异常.

如何在不向Comment添加Post属性的情况下定义这两个实体之间的关系?

最佳答案 评论应该有“PostId”,如果不是,则无法定义评论的帖子(例如在结果集中我们有2个帖子和7条评论)

因此,您应该将Post属性或PostId添加到Comment类.

另外,对于简单的情况,请参阅RelationAttribute,示例为here
参见Test2(),这有助于避免手动关系准备,无需编写:

sets[0].AddRelation(sets[1], "PostID", "PostID", "Comments");
点赞