2
我正面临与NH和传统数据库的映射关系问题。NHibernate遗留数据库多对一
我们有两个表
Table1 [
Id primary Key (sql identity)
Cod1,
Cod2 ]
然后第二表
Table2 [
CompositeCode primary key (assigned),
Cod1,
Cod2 ]
CompositeCode是计算的字段作为COD1 + COD2并且是表的键。
我试图映射只读多到一个这样
<class name="Table2" >
<id name="Id" >
<generator class="identity" />
</id>
<many-to-one name="Table2"
formula="SELECT C.CompositeCode FROM Table2 C WHERE C.Cod1= Cod1 AND C.Cod2 = Cod2"/>
<property name="Cod1" />
<property name="Cod2" />
</class>
NHibernate的击中分贝时,给了我这个错误Table 1和表2之间的关系:
'Incorrect syntax near the keyword 'SELECT'.
这是生成的SQL
SELECT TOP (100) this_.Id as Id1_37_0_,
this_.Cod1 as Cod1l3_37_0_,
this_.Cod2 as Cod24_37_0_,
SELECT this_.CompositeCode FROM Table2 C WHERE this_.Cod1 = C.OCd1 AND this_.Cod2 = C.COd2 as formula0_0_
FROM Table1 this_
怎么了?
我也tryied改变分子式为
formula="SELECT C.CompositeCode FROM Table2 C WHERE C.CompositeCode = Cod1 + Cod2"
,但没有运气!
P.S. NH是3.1版
谢谢你就像一个魅力! –