NHibernate2.0升级到3.0遇到的问题

今天将NHibernate升级到3.0后出现几个问题,解决它们颇费了一番功夫

问题1:升级后 ISessionFactoryImplementor 没有了OpenConnection方法,编译不通过

        public static DataSet ExecuteSQlQuery(string sSql)
        {
            ISessionFactoryImplementor factory = (ISessionFactoryImplementor)DBSessions.Factory;  
              SqlCommand cmd = new SqlCommand();
            cmd.CommandText = sSql;
            cmd.CommandType = System.Data.CommandType.Text;

            SqlConnection conn = (SqlConnection)factory.();
            cmd.Connection = conn;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            return ds;
        }
        解决的方法为,将factory.(); 改成 

             也就是,如果需要使用ado.net connection 可以直接使用ISession实例的Connection属性,类型为IDbConnection

问题2:查询时出现Antlr.Runtime.NoViableAltException异常

下面代码执行时总是报 Antlr.Runtime.NoViableAltException 
       ISession session = DBSessions.GetSession();
       string query="From Member Where id=1 ";
       IList lst = session.CreateQuery(query);
       【Member 类对应的表 BS_Members表】
找了很多资料,都说是HQL语法错误,但是上面的语句够简单了,怎么看也不像语法错误,况且别的表同样的调用方法都不会报错,
 
   
 

非常奇怪,NHibernate3.0竟让在HQL中拒绝 名称为Member的类,不管怎样总算解决了。


 

转载于:https://www.cnblogs.com/duanqs/archive/2011/01/20/1940664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值