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_person
和age_animal
你会有其他专栏。
感谢您的快速回答,每列的别名是一个问题,NH HBM文件已经定义为一个巨大的数据库,这些有问题的列都结束了,我需要NHibernate能够知道什么去哪里...如果可能的话,当然 – Rom
我认为一个别名是在这里进行的唯一方式,否则你不能区分两列之间。 –