如何应用 IQueryOverIQueryOver 的方法?
我正在使用接口Iqueryover包装查询。感谢基础有限的,我可以访问标准。
我想使用诸如take,skip的iQueryover方法...
我的目的是要适用一个func列表,在这种情况下
public IQueryOver QueryOver { get; set; }
/// <summary>
/// Set paging (before querying!)
/// </summary>
/// <param name="pageNumber"></param>
/// <param name="pageSize"></param>
public void Paging(int pageNumber, int pageSize)
{
if (pageNumber > 0 && pageSize > 0)
{
_pageSize = pageSize;
_pageNumber = pageNumber;
NHibernate.ICriteria paging(IQueryOver str) => str.UnderlyingCriteria.SetFirstResult(pageSize * (pageNumber - 1)).SetMaxResults(pageSize);
_funcs.Add(paging);
}
}
,我有一个我想包装列表
public IList<T> List()
{
IList<T> result = null;
try
{
BeginTransaction();
try
{
//foreach (var func in _funcs)
//{
// QueryOvern = func.Invoke(QueryOver); // THIS CANT'T WORKS
//}
result = QueryOver.UnderlyingCriteria.
SetResultTransformer(Transformers.AliasToBean<T>()).
List<T>();
}
catch (Exception ex)
{
log.Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
result = new List<T>();
RollBackTransaction();
}
}
catch (Exception ex)
{
log.Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
}
return result;
}
,我的意思是,我的意思是列表()有效,但是哇可以将弹性从iCriteria中应用于Iqueryover吗?
提前致谢
I'm wrapping QueryOver with the interface IQueryOver. Thanks UnderlyingCriteria I can access to the criteria.
I'd like to use the IQueryOver methods such as Take, Skip ...
My intention is to have a list of func to apply, in this scenario I have a
public IQueryOver QueryOver { get; set; }
/// <summary>
/// Set paging (before querying!)
/// </summary>
/// <param name="pageNumber"></param>
/// <param name="pageSize"></param>
public void Paging(int pageNumber, int pageSize)
{
if (pageNumber > 0 && pageSize > 0)
{
_pageSize = pageSize;
_pageNumber = pageNumber;
NHibernate.ICriteria paging(IQueryOver str) => str.UnderlyingCriteria.SetFirstResult(pageSize * (pageNumber - 1)).SetMaxResults(pageSize);
_funcs.Add(paging);
}
}
Then I'd like to wrap List
public IList<T> List()
{
IList<T> result = null;
try
{
BeginTransaction();
try
{
//foreach (var func in _funcs)
//{
// QueryOvern = func.Invoke(QueryOver); // THIS CANT'T WORKS
//}
result = QueryOver.UnderlyingCriteria.
SetResultTransformer(Transformers.AliasToBean<T>()).
List<T>();
}
catch (Exception ex)
{
log.Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
result = new List<T>();
RollBackTransaction();
}
}
catch (Exception ex)
{
log.Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
}
return result;
}
This works, I mean the List() works but wow can apply the func to the IQueryOver from ICriteria?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
让我感到羞耻的是,每次它应用一个标准时,UnderlyngCriteria 都会添加它。所以_criterias是一个Action列表
然后它可以应用
我做了一个分页的扩展方法
Shame of me, every time it applys a criteria UnderlyngCriteria adds it. So _criterias is a list of Action
then it can be applyed
I made a extension method to paging