nHibernate,我可以映射到没有每个对象行映射的表吗?

时间:2008-10-16 09:18:39

标签: .net nhibernate database-design

我有一个包含一个看起来像这样的表的数据库:

PropertyId,EntityId,Value

PropertyId和EntityId是组合的主键。每个实体分布在几行中,其中每行包含实体的单个属性。我无法控制这个数据库,所以我必须使用它。

是否可以使用NHibernate将此表中的实体映射到单个对象?我只需从这张表中读到,这可能会让事情变得更容易一些。或者我最好只使用DataReaders并自己进行映射?

2 个答案:

答案 0 :(得分:2)

不是那么做,但您可以使用自定义SQL查询来定义您的实体(不同的实体ID,加上任何实体级属性),请参阅here

虽然我可以看到您可能希望将属性/值映射到实体对象的属性。这可能意味着需要进一步查询以手动填充它们 - 这可能意味着您的数据读取器路线最佳。

如果你很高兴他们成为该实体的集合,那么这应该没问题。

答案 1 :(得分:1)

我不记得确切的语法,但map会这样做:

<map name='Values' table='EntityPropertyValue'>
  <key column='EntityId'  />
  <index-many-to-many class='Person' column='PersonId' />
  <element column='Value' type='object' />
</map>