2
如果許多類實現相同的接口,是否可以將這些接口屬性映射到一個地方?還有更多的代碼@pastebin從一個地方接口流出的NHibernate映射屬性
你可以在這裏看到類有一些通用的接口(但不是所有的接口都是通用的),我不得不重複映射。
public class PostMapping : SubclassMap<Post>
{
public PostMapping()
{
Map(x => x.Text, "Text");
// coming from IMultiCategorizedPage
HasManyToMany(x => x.Categories).Table("PageCategories").ParentKeyColumn("PageId").ChildKeyColumn("CategoryId").Cascade.SaveUpdate();
// coming from IMultiTaggedPage
HasManyToMany(x => x.Tags).Table("PageTags").ParentKeyColumn("PageId").ChildKeyColumn("TagId").Cascade.SaveUpdate();
// coming from ISearchablePage
Map(x => ((ISearchablePage)x).SearchIndex, "SearchIndex").LazyLoad();
}
}
public class ArticleMapping : SubclassMap<Article>
{
public ArticleMapping()
{
Map(x => x.Text, "Text");
// coming from ISingleCategorizedPage
References(x => x.Category, "CategoryId");
// coming from IMultiTaggedPage
HasManyToMany(x => x.Tags).Table("PageTags").ParentKeyColumn("PageId").ChildKeyColumn("TagId").Cascade.SaveUpdate();
// coming from ISearchablePage
Map(x => ((ISearchablePage)x).SearchIndex, "SearchIndex").LazyLoad();
}
}