c# - 在流畅的 nHibernate 中将平面 View 映射到类层次结构

标签 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; }
}

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

vResult

结果ID
结果时间
竞争对手ID
竞争对手名称
参赛者出生日期
事件ID
事件名称
事件描述

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

是否可以将其映射到 Fluent nHibernate 中?

编辑-
值得一提的是,数据访问将是只读

最佳答案

正如上面的评论所指出的,确实是 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");
            });

关于c# - 在流畅的 nHibernate 中将平面 View 映射到类层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11206964/

相关文章:

c# - C#/.net 可以从字符串中解析指数十六进制编码的 float 吗?

时间:2019-05-08 标签:c#asp.net : capture the raiserror() message from an SQL stored procedure

c# - Fluent nHibernate 和 asp.net MVC 入门

Nhibernate 查询具有包含值的字典属性的项目

c# - 如何检查类型参数是否实际上是一个接口(interface)

c# - 如何覆盖 C# 中两个字符串的一般比较

c# - 如何将解决方案测试的代码覆盖率结果文件输出到解决方案目录而不是测试项目目录

C#密码生成器,生成多个密码

c# - 配置FluentNHibernate、FluentMappings.AddFromAssembly;意义

c# - DataGridView 中显示的来自 XML 的数据集