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());
}
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());
}
相關文章
- NHibernate查詢示例合集
- mysql資料庫連表查詢的幾種方法MySql資料庫
- pandas 的幾個查詢方法
- [翻譯]查詢Windows記憶體洩露的幾種方法Windows記憶體洩露
- 轉載 ]查詢Windows記憶體洩露的幾種方法Windows記憶體洩露
- 查詢堵塞程式的幾種SQL--SQL
- JAVA - mongodb 聚合幾種查詢方式JavaMongoDB
- 教你幾招HASH表查詢的方法
- 提高mysql查詢效率的六種方法MySql
- Linux下查詢漏洞的幾種必備工具Linux
- 物流快遞單號查詢介面種類及對接方法
- 對Oracle View授權和where查詢需要注意的地方OracleView
- CSS“隱藏”元素的幾種方法的對比CSS
- Android ViewTreeObserver使用總結及獲得View高度的幾種方法AndroidViewServer
- JS常用判斷空對像的幾種方法JS
- 強大:MyBatis ,三種流式查詢方法MyBatis
- 讓OData和NHibernate結合進行動態查詢
- Java的幾種建立例項方法的效能對比Java
- SAP ABAP 系統進行資料庫表查詢的幾種常用方法的試讀版資料庫
- 【總結】二分查詢 —— 一種減而治之的查詢方法(1)
- MySQL中幾種資料統計查詢的基本使用教程MySql
- django對資料庫查詢基本方法Django資料庫
- iOS view圓角化的四種方法iOSView
- 查詢已經刪除的procedure,view,functionViewFunction
- 物流快遞單號查詢介面種類及快遞鳥對接方法
- Android 獲得View寬高的幾種方式AndroidView
- xml操作的幾種方法XML
- 跨域的幾種方法跨域
- Java中查詢陣列多數元素的4種方法Java陣列
- jquery幾種用來檢查checkbox是否選中的方法jQuery
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis
- NHibernate 多對多對映的資料更新
- 將xml佈局轉換成View的幾種方式XMLView
- 隱藏引數查詢和dictionary viewView
- Mongodb 常用的查詢方法MongoDB
- 查詢Authorization Object的方法Object
- 幾種可以對瀏覽器進行核心攻擊的方法瀏覽器
- 【備份】RMAN中對控制檔案的幾種備份方法