2

我有一个与 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。在当前数据库结构下如何描述方案映射?

4

1 回答 1

0

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

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

于 2013-02-22T16:11:16.650 回答