1

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

  • 主键列
  • 描述事件文本:如果需要的话(例如“发布的评论”)
  • 一个discrimator列
  • 一个外键列另一个表阿
  • 一个外键列到另一个表乙
  • ....
  • 一个外键列到另一表否

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

我的问题是: 事件表和事件类之间可能存在映射吗?流利的nhibernate特别可行吗?无需创建许多派生类的事件(我不想创建这么多的空子类)就可以完成吗?事件类将理想如下:可以实现IEventRecordable(这主要是一个空的接口)

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

域模型类中的许多类。这可能是用户表或BlogComment表...

感谢

回答

2

如果您忘记了多个外键列,可以使这是一个<any> mapping

+0

然后它应该真的被称为'会话NHibernate'。 :) – Thom 2008-12-04 11:32:11

相关问题