打印本文 打印本文  关闭窗口 关闭窗口  
NHibernate2.x应用:返回DataSet
作者:佚名  文章来源:不详  点击数  更新时间:2008/10/22 21:29:38  文章录入:杜斌  责任编辑:杜斌

  虽然NHibernate是完全OO的,但我们还是有需要返回DataSet的时候。
  在ADO.NET里,要返回DataSet需要使用IDbDataAdapter, 那么通过NHibernate返回DataSet的关键就是如何创建合适的IDbDataAdapter实现类。
  在NHibernate里,由IDriver负责创建Connection和Command,我们可以扩展相应的Driver使其能创建DataAdapter,对于SqlClientDriver的扩展类如下:
  public class ExSqlClientDriver : SqlClientDriver
  {
  public IDbDataAdapter CreateDataAdapter()
  {
  return new SqlDataAdapter();
  }
  }
  对应的配置更改如下:
  <property name="connection.driver_class">Chapter01.ExSqlClientDriver, Chapter01</property>
  主调用代码:
  // 初始化
  Configuration cfg = new Configuration().Configure();
  ISessionFactory sf = cfg.BuildSessionFactory();
  // 得到扩展的Driver
  ExSqlClientDriver driver = (ExSqlClientDriver)sf.ConnectionProvider.Driver;
  // 打开数据库连接
  IDbConnection conn = ((ISessionFactoryImplementor)sf).OpenConnection();
  // Examda提示:创建Command
  IDbCommand cmd = conn.CreateCommand();
  cmd.CommandText = "select * from infos";
  DataSet ds = new DataSet();
  // 创建DataAdapter
  IDbDataAdapter da = driver.CreateDataAdapter();
  da.SelectCommand = cmd;
  // 填充Dataset
  da.Fill(ds); 来源:考
打印本文 打印本文  关闭窗口 关闭窗口