如何将历史表链接到父表

时间:2012-02-23 14:49:32

标签: nhibernate mapping entity-relationship

父表是OBJECT。

子表是OBJECT_STATUS_HISTORY。

一个OBJECT有很多OBJECT_STATUS_HISTORY。

对于当前OBJECT的状态,只有最后一个OBJECT_STATUS_HISTORY是相关的。

我可以按原样映射这两个表,并让NHibernate将OBJECT映射到OBJECT_STATUS_HISTORY但是!只有最后一条记录可访问。基本上你可以通过某种条件将one_to_many映射限制为one_to_one吗? OBJECT_STATUS_HISTORY仍然是一个包或集,或者只包含一个对象的列表,或者一个对象本身,它并不重要。

它是一个遗留数据库,这个模式到处都是,因为数据库正在从外部接收历史输入,而且我不能在OBJECT表中创建一个标志,它会给我一个当前状态,然后将它直接映射到NHibernate

当然,我可以稍后从OBJECT_STATUS_HISTORY向OBJECT内存类添加状态,但问题是:我是否只能使用映射执行此操作?我可以轻松地为这个对象创建一个SQL语句,所以本质上我可以创建一个具有上述要求的视图,然后将它映射到NHibernate中,但是NHibernate可以自己做吗?

如果问题不够清楚,现在就告诉我。

1 个答案:

答案 0 :(得分:1)

在TSQL中,我会使用top来获取一条记录,并在查询中按顺序执行以便始终获得最新记录。

select top 1 * from table_name