当前位置: 代码迷 >> ASP.NET >> :NHibernate 多参数查询方法(动态传参)
  详细解决方案

:NHibernate 多参数查询方法(动态传参)

热度:7510   发布时间:2013-02-25 00:00:00.0
求救:NHibernate 多参数查询方法(动态传参)
废话不说,上代码。
/// <summary>
  /// 查询数据
  /// </summary>
  /// <returns></returns>
  public object GetListBySql(string sql)
  {
  object _rObj = null;
  using (ITransaction tx = _isSession.BeginTransaction())
  {
  try
  {
  _rObj = _isSession.CreateQuery(sql);
  tx.Commit();
  }
  catch (Exception e)
  {
  tx.Rollback();
  LogHelper.Error("系统异常:", e);
  }
  finally
  {
  FactorySessionHelper.CloseSession();
  }
  }
  return _rObj;
  }

  /// <summary>
  /// 查询数据(带参数,推荐使用)
  /// </summary>
  /// <param name="sql"></param>
  /// <param name="pars"></param>
  /// <returns></returns>
  public object GetListBySql(string sql, params object[] pars) {
  object _rObj = null;
  using (ITransaction tx = _isSession.BeginTransaction())
  {
  try
  {
  //IQuery _iquery = _isSession.CreateQuery(sql).
_rObj = _isSession.CreateQuery(sql); 
  ///他妹,就没有支持动态传参的方法。求高手点播。
  ///本人知道这个方法_isSession.CreateCriteria()可以动态传参,但是要穿实体,很恶心。
  tx.Commit();
  }
  catch (Exception e)
  {
  tx.Rollback();
  LogHelper.Error("系统异常:", e);
  }
  finally
  {
  FactorySessionHelper.CloseSession();
  }
  }
  return _rObj;
  }

------解决方案--------------------------------------------------------
建议你用criteria,不要用hql
另外新版本的nhibernate已经支持linq了。
  相关解决方案