.net nHibernate,我可以映射到一个不';每个对象没有一行映射吗?

.net nHibernate,我可以映射到一个不';每个对象没有一行映射吗?,.net,nhibernate,database-design,.net,Nhibernate,Database Design,我有一个数据库,其中包含一个看起来有点像这样的表: PropertyId、EntityId、值 PropertyId和EntityId是组合主键。每个实体分布在几行上,其中每行包含实体的单个属性。我无法控制这个数据库,所以我必须使用它 是否可以使用NHibernate将此表中的实体映射到单个对象?我只需要从这张桌子上读一读,这可能会让事情变得容易一点。或者我最好还是使用DataReader并自己进行映射?这还不够,但您可以使用自定义SQL查询来定义实体(独特的entityid,以及任何实体级别的

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

PropertyId、EntityId、值

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


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

这还不够,但您可以使用自定义SQL查询来定义实体(独特的entityid,以及任何实体级别的属性),请参阅

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


如果您希望它们成为实体的集合,那么这应该没有问题。

我记不起确切的语法,但是
映射可以:

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

谢谢。我试试看。我可以将属性存储在一个列表中,并通过在列表中查找正确属性的各个属性获取程序将它们提供给外部世界。不理想但可行:-)