NHibernate的 - CreateSqlQuery具有相同的列名在两个连接表

问题描述:

为题说,我的问题是,当我写“选择的人*留在preson.animle_id = animle.ID加入animle”现在NHibernate的 - CreateSqlQuery具有相同的列名在两个连接表

,如果两个表都有“年龄”列,例如我有一个问题:

var query = "select * from person left join animle on preson.animle_id = animle.ID"; 

var List<Object[]> = createSqlQuery(query).addentity(person).addentity(animle).list<Object[]>(); 

animle.age获取人年龄值。

是否有一种方法,每个对象将接收正确的值,而无需更改列名称?

谢谢。

您可以尝试在你的原始SQL查询分配一个唯一的别名每个age列:

SELECT 
    t1.age AS age_person, 
    t2.age AS age_animal, 
    ... -- other columns 
FROM person t1 
LEFT JOIN animle t2 
    ON t1.animle_id = t2.ID 

我不是太熟悉C#或NHibernate的,但你应该能够访问age_personage_animal你会有其他专栏。

+0

感谢您的快速回答,每列的别名是一个问题,NH HBM文件已经定义为一个巨大的数据库,这些有问题的列都结束了,我需要NHibernate能够知道什么去哪里...如果可能的话,当然 – Rom

+0

我认为一个别名是在这里进行的唯一方式,否则你不能区分两列之间。 –