[英]Mapping junction table to self
我正在努力使用使用引用同一表的聯結表的映射。 想法是能夠跟蹤頁面之間的所有鏈接。
連接表:
CREATE TABLE WikiPageLinks (
Page int NOT NULL,
LinkedPage int NOT NULL
)
主表:
CREATE TABLE WikiPages (
Id int NOT NULL IDENTITY,
PageName nvarchar(50) NOT NULL,
Title nvarchar(50) NOT NULL,
CONSTRAINT PK_WikiPages PRIMARY KEY (Id)
)
和類:
public class WikiPage
{
public virtual int Id { get; protected set; }
public virtual IEnumerable<WikiPageLink> BackReferences {get;}
public virtual IEnumerable<WikiPageLink> References {get; }
}
WikiPageLinks .LinkedPage
WikiPageLinks.Page
映射應如何顯示?
如果鏈接中沒有其他列,那么我會刪掉它
public class WikiPage
{
public virtual int Id { get; protected set; }
public virtual IEnumerable<WikiPage> BackReferences { get; }
public virtual IEnumerable<WikiPage> References { get; }
}
// WikiPageMap : ClassMap<WikiPage>
public WikiPageMap()
{
...
HasManyToMany(wp => wp.References)
.Table("WikiPageLinks")
.ParentKeyColumn("parent_page_id")
.ChildKeyColumn("referenced_page_id");
HasManyToMany(wp => wp.BackReferences)
.Table("WikiPageLinks")
.ParentKeyColumn("referenced_page_id")
.ChildKeyColumn("parent_page_id")
.Inverse();
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.