在流畅的nHibernate中将平面视图映射到类层次结构

时间:2012-06-26 12:06:26

标签: c# .net fluent-nhibernate fluent-nhibernate-mapping

我正在开发一个使用比赛结果/时间等模型的应用程序。
我有一个看起来像这样的模型:

public class Competitor
{
    public virtual int ID { get; set; }
    public virtual string Name { get; set; }
    public virtual DateTime DateOfBirth { get; set; }
}

public class Event
{
    public virtual int ID { get; set; }
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
}

public class Result
{
    public virtual int ID { get; set; }
    public virtual decimal ResultTime { get; set; }
    public virtual Competitor Competitor { get; set; }
    public virtual Event Event { get; set; }
}

在我的数据库中,我只能访问代表数据“平面”视图的视图。这看起来像是:

vResult

ResultID
ResultTime
CompetitorID
CompetitorName
CompetitorDateOfBirth
事件ID
事件名称
EventDescription

所以,我试图避免让一个完全匹配上述“扁平”模式的类(如果可能的话)

是否可以使用Fluent nHibernate进行映射?

修改 -
值得一提的是,数据访问将是只读

1 个答案:

答案 0 :(得分:3)

正如上面的评论所指出的,确实Component解决了这个问题。

在我的ResultMap课程中遵循以下内容:

Component(x => x.Event, m =>
            {
                m.Map(x => x.ID).Column("EventID");
                m.Map(x => x.Name).Column("EventName");
                m.Map(x => x.Description).Column("EventDescription");
            });