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());
                }

  • 相关阅读:
    关于负数补码的求解
    二维数组的行列指针
    复杂类型的解读
    单斜杠''的思考
    HTML 文本格式化实例--常用的标签
    P1 基础知识以及客户截面 【B站 SolidWorks2014教学视频 共计20讲】
    SolidWorks 2-5 草图的绘制
    SolidWorks 2-4 草图简介
    SolidWorks 模型创建的一般过程 2019年2月25日
    P3 3.HTML&CSS基础_HTML简介 (24'22")---------- 高质量HTML与CSS基础(共103讲)
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/1666045.html
Copyright © 2011-2022 走看看