1

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

属性 ID、实体 ID、值

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

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

4

2 回答 2

2

还没有完全做到这一点,但您可以使用自定义 SQL 查询来定义您的实体(不同的 entityid,以及任何实体级别的属性),请参见此处

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

如果您对它们成为实体的集合感到高兴,那应该没问题。

于 2008-10-16T09:46:26.113 回答
1

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

<map name='Values' table='EntityPropertyValue'>
  <key column='EntityId'  />
  <index-many-to-many class='Person' column='PersonId' />
  <element column='Value' type='object' />
</map>
于 2008-10-17T16:20:14.960 回答