C# 将一个实体映射到多个表

C# 将一个实体映射到多个表,c#,nhibernate,fluent,C#,Nhibernate,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 PR

我有一个关于流利的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"));
    }
}
公共类CeMap:ClassMap
{
公共CeMap()
{
表(“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”);
}
}

但是有了这样的scheme CeType,CeValue表应该有一个字段Ce_id。我如何描述数据库当前结构下的scheme映射?

当我第一次开始使用nHibernate时,我尝试过做同样的事情,但找不到方法。实际上,我不相信可以将多个表映射到单个对象。通常每个表都有一个实体。每个实体都将映射到它们的表,并且在它们之间具有引用/链接

您可能会发现,从长远来看,每个表有一个实体更好,因为它允许更简单地映射到数据库