2011-05-08 48 views
-1

我有一个映射类,它的一些值是他们的实际值存在于另一个表有三列,value_type,value_code,value的代码。NHibernate单表多个值

我知道value_type我的映射类中的foreach字段,我想映射它,所以我会得到value其中value_code等于该类中的代码。

我想知道如何映射像这样的东西......我会在这件事情上处理任何事情。

+1

请添加一些格式/换行符到您的问题,并添加一个示例。 – Zebi 2011-05-08 12:21:23

+1

Yah,通往模糊的路......不确定你想要做什么。 – Gary 2011-05-08 16:28:23

回答

0

为了将来的参考,你的问题,正如其他人所评论的,配制不好,模糊,通常不太可能得到答案。但我明白你在做什么。

首先,这个数据模型 - 基本上是EAV数据库设计 - 可能是非常成问题的。除非你绝对必须这样做,否则这只会发生在某些类型的应用程序中,如果可能的话,重构一个正常的实体关系数据库模型,并且摆脱这种结构。

要NHibernate的映射这一点,你必须做一些设置:

1)首先你必须创建一个继承层次。创建一个基本的抽象类,然后从该基类派生一个新的具体类,每个value_type字段值。因此,如果value_type有三个可能的值,即“Type1”,“Type2”和“Type3”,则将有一个基本抽象类,然后有三个派生类,一个用于Type1,一个用于Type2,另一个用于Type3。将保存value柱的特性。

2)创建基类和派生类的映射。必须使用一个单一的表模型,该鉴别器字段value_type,标识符列是value_code。物业在类中被映射到value

3)在想要访问这些值的类中,必须将每个字段的类型更改为与您为该创建的类相同的类型。

这应该适合你。