2010-10-18 26 views

回答

1

如果您使用NHibernate v2.1或更高版本,则可以使用entity-name功能。它记录不完整,但我正在积极使用该功能。它已经变得很难找到它的文档,但看看这里:

5.3节

http://docs.jboss.org/hibernate/core/3.2/reference/en/html/mapping.html#mapping-entityname

几件事情要注意的。您现在必须使用实体名称而不是类名称来引用对象。总的来说,从类名到实体名不是一个完全透明的变化。

会议的行动,现在需要两个参数,例如:

_session.Save( “myEntity所”,为MyObject)

什么表中的数据进入实体名称的控件。

有些HQL查询不再正常工作,有时您必须改用Criteria。

如果您需要一组示例代码,我可能会张贴一些,但目前太忙了。我建议你看看你可以找到的有限的信息,并设置一个非常简单的对象和多个表来了解它是如何工作的。它确实有效。

1

您可以创建一个包含所有属性的基类,但仍需要映射它们。为此,您可以使用复制&粘贴,XML实体(请参阅http://nhibernate.info/doc/nh/en/index.html#inheritance-tableperconcreate-polymorphism检查)或基于代码的映射方法(Fluent或ConfORM)。他们通常使重用更容易。

+0

Upvoted因为它会工作,虽然西西弗斯 的答案更接近我所需要的。我为所有对象使用同一个存储库(将它们视为同一类型,但使用表名来标识它们) – jgauffin 2010-10-21 07:16:34