我在QueryOver中只選擇了需要的模型時遇到了一些小問題。 這裏我的方案NHibernate QueryOver只選擇需要的模型
var qOver = _HibSession.QueryOver<ModelA>(() => Ma)
.JoinAlias(() => Ma.MbList,() => Mb, JoinType.LeftOuterJoin)
.Where(() => Mb.ID == _MbId)
.JoinAlias(() => Mb.McList,() => Mc,JoinType.LeftOuterJoin)
.Where(() => Mc.ID == _McId)
.JoinAlias(() => Mc.MdList,() => Md, JoinType.LeftOuterJoin)
.Where(() => Md.ID == _MdID)
.OrderByAlias(() => Ma.ID).Asc
.Take(iTake)
.Skip(iSkip)
.Future<ModelA>();
上面的代碼生成後續SQL
SELECT TOP n Ma.*,Mb.*,Mc.*,Md.*
FROM Ma
LEFT JOIN Mb ON (...conditions...)
LEFT JOIN Mc ON (...conditions...)
LEFT JOIN Md ON (...conditions...)
WHERE Mb.ID = _MbId
AND Mc.ID = _McId
AND Md.ID = _MdId
ORDER BY Ma.ID ASC
的問題是,MC和馬里蘭州表複製我的結果。所以我會在我的SELECT語句中只有Ma和Mb。
SELECT TOP n Ma.*,Mb.*
FROM
.
.
.
我該如何達到這個結果? 謝謝!
您能否提供更多詳細信息? – longday 2011-08-10 12:07:20
@longday:我已經編輯我的帖子來解釋我的意思:) – Faber 2011-08-24 07:10:36