![](/img/trans.png)
[英]How to map composite foreign key to a non-primary unique key in FluentNHibernate?
[英]FluentNHibernate - Map Foreign Key As Primary Key
嗨,我正在嘗試將數據庫遷移到ORM,發現一個問題。 該數據庫是采用繼承的概念創建的,其中有一個父表和幾個繼承其屬性的子表。 為了方便使用INNER JOIN進行查詢,所有子表僅包含對父表標識的引用(同時是外鍵是主鍵)。 遵循模型:
BaseDocument
{
Id : Long
...
}
AdministrativeDocument
{
Id : Long (PK), (FK : BaseDocument(Id))
...
}
PropositionDocument
{
Id : Long (PK), (FK : BaseDocument(Id))
...
}
ProjectDocument
{
Id : Long (PK), (FK : BaseDocument(Id))
...
}
我的問題是:有什么方法可以創建映射,其中外鍵也是C#在FluentNHibernate中的主鍵,還是我必須為每個表創建單獨的主鍵?
每個類繼承層次結構都有一個標准表。 只需將其映射為
// inherit
class AdministrativeDocument : Document { }
// base class mapping
class DocumentMap : ClassMap<Document>
{
public DocumentMap()
{
Id(x => x.Id, "Id")...;
}
}
// subclass mapping, same for all three subtables
class AdministrativeDocumentMap : SubclassMap<AdministrativeDocument>
{
public AdministrativeDocumentMap()
{
KeyColumn("Id");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.