2011-10-20 4 views
2

nhibernate ConfORMを使用して、または少なくともnhibernate ConfORMでsqlクエリを作成して、異なるデータベースの2つのテーブルに参加するにはどうすればよいですか?nhibernateでsqlクエリを使用する方法ConfORM

これは私が実行する必要があるクエリです:

select RTRIM(l.descr) as affiliation, a.LocationId 
from Facilities a 
join [tmt-sam2].sammi.dbo.location l ON a.LocationId = l.off_code+'-'+l.location 

おかげで、 アレクセイ

+0

1つ以上のデータベースで1つのSQLを実行する必要がありますsupp RDBMSによってortedされ、ごくわずかです。 – Firo

答えて

1

あなたはすべての

using (var session1 = sessionfactoryDataBase1.OpenSession()) 
using (var session2 = sessionfactory_tmt_sam2.OpenSession()) 
{ 
    var locations = session2.QueryOver<Location>().List(); 
    var results = session1.QueryOver<Facility>() 
     .Where(f => f.LocationId.IsIn(locations.Select(l => l.OffCode + '-' + l.location))) 
     .AsEnumerable() 
     .Join(locations, f => f.LocationId, l => l.OffCode + '-' + l.location, (f, l) => new { Description = l.descr.TrimEnd(), LocationId = f.LocationId }); 
} 

そうバッチ海峡の負荷をできることを多くの場所を持っていけない場合コード内

関連する問題