如果我在两个实体之间有一对多的关系(即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");