2013-01-31 68 views
0

我有一些問題,這NHibernate的查詢轉換爲左連接queryover轉換此NHibernate的查詢與queryover

var query = session.Query<T>.Join(
    Session.Query<RecordOrder>(), 
    q=>q.MiniDbName, 
    o=>o.DatabaseName, 
    (q,o)=>new{Record = q, Order = o.OrderValue}) 

任何人都可以幫助我,我想這個查詢支持左連接。

+0

具體而言,您有什麼問題? – imreal

+0

我想改變這個查詢是這樣的SQL:「SELECT o.Order,o.Record FROM Record r LEFT JOIN Order o ON r.MiniDbName = o.DatabaseName –

回答

1

默認連接是內連接。每個附加連接類型都可以使用方法.Inner,.Left,.Right或.Full指定。例如,左外連接上使用的小貓:

IQueryOver<Cat,Kitten> catQuery = 
session.QueryOver<Cat>() 
    .Left.JoinQueryOver(c => c.Kittens) 
     .Where(k => k.Name == "Tiddles"); 

你的情況:

var list = 
    session.QueryOver<RecordOrder>() 
    .Left.JoinQueryOver(c => c.Orders).ToList() 
+0

是的,我認爲queryover是我的問題的答案.. –