簡體   English   中英

將一個實體映射到多個表

[英]Mapping one entity to multiple tables

我有一個關於Fluent NHibernate的問題。 我無法描述將一個實體映射到多個表的架構。 數據庫具有以下結構:

Create table CeTypes (Id int not null PRIMARY KEY, Name nvarchar(100) not null)
Create table CeValues (Id int not null PRIMARY KEY, Name nvarchar(100) not null)
Create table Ces (Id int not null PRIMARY KEY, CeType_id int not null FOREIGN KEY REFERENCES CeTypes(Id), CeValue_id int not null FOREIGN KEY REFERENCES CeTypes(Id))

有以下實體:

public class Ce
{
     public virtual int Id { get; set; }
     public virtual string Type { get; set; }
     public virtual string Value { get; set; }
}

CeType,域中的CeValue實體,並且沒有。 我不知道如何描述映射Ce實體。

試圖描述:

public class CeMap : ClassMap<Ce>
{
    public CeMap()
    {
        Table("Ces");
        Id(c => c.Id);

        Join("CeTypes", m => m.Map(ce => ce.Type).Column("Name"));
        Join("CeValues", m => m.Map(ce => ce.Value).Column("Name"));
    }
}

但是使用這樣的方案CeType,CeValue表應該具有字段Ce_id。 如何描述數據庫當前結構下的方案映射?

剛開始使用nHibernate時,我嘗試做同樣的事情,但找不到解決方法。 我實際上不相信您可以將多個表映射到單個對象。 通常,每個表只有一個實體。 每個實體都將映射到其表,並且它們之間將具有引用/ hasmany鏈接。

從長遠來看,您可能會發現每個表具有一個實體也更好,因為它允許更簡單地映射到數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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