2017-08-25 5 views
0

に入社し、私の問題は、私が書くときということであれば、NHibernateは - 被写体が述べたように、2つの同じ列名を持つCreateSqlQueryは、テーブル

今「人から*選択preson.animle_id = animle.IDにanimleに参加左」両方のテーブルは、例えば、「年齢」欄を持って、私は問題を抱えている:

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は人の年齢値を取得します。

各オブジェクトが列名を変更せずに正しい値を受け取る方法はありますか?

ありがとうございました。

答えて

0

あなたは、元の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ファイルはすでに巨大なDB用に定義されており、これらの問題のあるカラムはすべて終わっています。NHibernateがどこに行くのかを知るためには...可能であればもちろん – Rom

+0

私はエイリアスがここに進む唯一の方法だと思います。そうでなければ、2つの列を区別できません。 –

関連する問題