这个映射可以用(Fluent)NHibernate完成吗?

时间:2008-11-28 14:37:24

标签: c# nhibernate fluent-nhibernate nhibernate-mapping domain-driven-design

我有一个Events表,其目标是存储网站用户完成的操作。动作基本上改变或在表X中创建新行。这将允许我存储用户完成的所有动作的历史记录。因此,事件包含:

  • 主键列
  • 描述事件的文字(例如:“发表评论”)
  • 如果需要,可以使用描述符列
  • 到另一个表A的外键列
  • 到另一个表B的外键列
  • ....
  • 外键列到另一个表N

Events表中的一行只设置了一个外键列,其他所有列都为null(因此它们都可以为空)。该表的行为类似于事件所涉及的实际表的间接表。我不知道是否需要鉴别器,因为所有信息都包含在外键列中。 表A至N可以是任何东西。如果需要,他们的域模型类可以有一个公共接口(IEventRecordable)。

我的问题是: 事件表和事件类之间是否可以映射?流利的nhibernate特别可行吗?可以在不必创建许多派生类的事件(我不想创建这么多空子类)的情况下完成吗? Event类理想情况如下:

public class Event
{
    public virtual int Id { get; set; }
    public virtual IEventRecordable ActualEvent { get; set; }
    public virtual string EventDescription { get; set; }
    DateTime EventDateTime { get; set; }
}

域模型类中的许多类可以实现IEventRecordable(主要是空接口)。它可以是User表或BlogComment表......

由于

1 个答案:

答案 0 :(得分:2)

如果您忘记了多个外键列,可以将其设为<any> mapping