我正在对使用NHibernate作为几乎不了解NHibernate的人的某些代码进行维护...
我有以下查询
var query = string.Format(@"select s.Id, s.Iccid, c.Name as Carrier, aa.StartDate as AssignmentDate, cust.Name as AssignedCustomerName
from assetassignment aa
left join SIM s on aa.AssetId = s.Id
left join Carrier c on s.CarrierId = c.Id
left join customer cust on aa.CustomerId = cust.Id
where aa.enddate is null
and aa.CustomerId in ({0})
and s.dateremoved is null",
string.Join(",",idsToInclude));
if (!string.IsNullOrWhiteSpace(carrier))
{
query += " and c.Name = '" + carrier + "'";
}
var results = _session.CreateSQLQuery(query)
.SetResultTransformer(new AliasToBeanResultTransformer(typeof(HomepageSIMTableRow)))
.List<HomepageSIMTableRow>();
return results;
这对我来说很好用(并且意味着我不必苦恼NHibernate来运行我可以应对的某些东西,但是现在我需要添加分页并且感觉很臭。
关于如何将其转移到NHibernate领域并添加分页的任何指导都将很棒!
我不确定这是否适用于常规SQL,但通常对于NHibernate,您可以添加一个
var results = _session.CreateSQLQuery(query)
.SetFirstResult(0)
.SetSetMaxResults(30)
.SetResultTransformer(new AliasToBeanResultTransformer(typeof(HomepageSIMTableRow)))
.List<HomepageSIMTableRow>();
这适用于常规条件和HQL查询。
您可以阅读以下内容作为参考:如何使用NHibernate进行分页?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句