我正在努力使用以下sql表的映射
|Post | |PostRelation |
|------------------| |-----------------|
|PostId |1--------*|ParentPostId |
|---other stuff--- |1--------*|ChildPostId |
| | |RelationType |
理想情况下,我喜欢将帖子称为relatedPosts的属性
Dictionary <RelationType,IList<Post>>
但是在那一刻,我只是在
的帖子上找到了一个房产 IList<PostRelation>.
我成功地使用了多对多来获取相关帖子,但这种方法丢失了附加数据。
有什么建议吗?
答案 0 :(得分:4)
经过深入研究后,我终于找到了解决方案。所以虽然我会发布它,以防将来可以帮助其他人。 由于PostRelation有额外的数据,它本身就需要成为一个实体。
<强> --- PostRelationMap 强>
Id(x => x.Id, "PostRelationId").GeneratedBy.Identity();
References(x => x.ParentPost, "ParentPostId")
.ForeignKey("FK_PostRelation_ParentPost")
.Fetch.Join()
.LazyLoad();
References(x => x.ChildPost, "ChildPostId")
.ForeignKey("FK_PostRelation_ChildPost")
.Fetch.Join()
.LazyLoad();
Map(x => x.RelationshipType).CustomType<int>().Not.Nullable();
<强> --- PostMap 强>
HasMany(x => x.ChildPosts)
.Access.CamelCaseField(Prefix.Underscore)
.Cascade.AllDeleteOrphan()
.KeyColumn("ChildPostId")
.LazyLoad();