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

相關問題