簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM