zoukankan      html  css  js  c++  java
  • Nhibernate 对view 查询的几种方法

    第一种方法: 写view的类,写hbm.xml映射文件. 对无主键的view的查询要注意:你要用复合主键,不能随便指定一个有重复数据的列,不然你取n条数据时总会取到n条这个值的第一条数据. 要么你就改视图,让它有一个列是唯一主键.

    hbm.xml复合主键的写法

        <composite-id>
          <key-property name="OID" type="string"></key-property>
          <key-property name="Product" type="string"></key-property>
          <key-property name="SizeDesc" type="string"></key-property>
        </composite-id>

    用了复合主键之后view的类要重写兩个方法,不然会出現composite-id class must override Equals()的错误

            public override bool Equals(object obj)
            {
                 if (obj is GoodsInView)
                {
                    GoodsInView giv = obj as GoodsInView;
                    if (this.OID == giv.OID && this.Product == giv.Product && this.SizeDesc == giv.SizeDesc)
                        return true;
                    else
                        return false;
             
                }
                return false;
            }

            public override int GetHashCode()
            {
                return base.GetHashCode();
            }

    ---------------------------

    第2种方法

    只写view的类,不写hbm.xml文件

    用SQL查询,再转成List<T>

                string sql = "select * from GoodsInView";

                using (ISession session = NHibernateHelper.OpenSession())
                {
                    return ToList<GoodsInView>(
                        session.CreateSQLQuery(sql)
                        .List());
                }

  • 相关阅读:
    二分查找
    苹果开发人员账号注冊流程
    cocos2d_android 瞬间动作
    Qt多线程学习:创建多线程
    Java模式(适配器模式)
    代理方法keywordAction与Fun的使用
    装饰者模式
    编写你自己的单点登录(SSO)服务
    4种Java引用浅解
    strtok和strtok_r
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/1666045.html
Copyright © 2011-2022 走看看