nhibernate輸出sql
⑴ nhibernate是如何自動生成sql語句的
NHibernate 查看生成的sql語句:
其實就是Interceptor的應用, 源碼中Interceptor的默認實現是EmptyInterceptor,
[Serializable]
public class EmptyInterceptor : IInterceptor
{ //前面省略n行代碼
public SqlString OnPrepareStatement(SqlString sql)
{
return sql;
}
} public class MyInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
return base.OnPrepareStatement(sql);
}
} 我們要做的就是繼承EmptyInterceptor,重寫OnPrepareStatement()方法,重寫方法裡面就是你大展拳腳的地方了,
想寫文件寫文件,想輸出到頁面就輸出到頁面,什麼都不做都可以,如上
怎麼用呢?
public override void Update(Admin entity)
{
ISession session = HibernateTemplate.SessionFactory.OpenSession(new MyIntercepotr);
session.Update(entity);
session.Flush();
}
在你想要查看的操作中,打開session 的時候添加上自定義的攔截器就可以了,想給所有的操作都配置的話就要用到全局配置文件了。
重寫OnPrepareStatement()的時候一句話都不改,我只是在這里打一個斷點而已,只要看看生成的sql語句就行了,然後去修改配置文件再來debug,確認怎麼配置生產的sql最優。
用LinqPad查看Nhibernate生成的sql語句
使用Nhibernate開發一般都要對Nhibernate生成的sql語句進行查看及分析,查看Nhibernate生成的sql語句,可以使用NHProfiler和log4net。但NHProfiler是要付費的(當然,在天朝,你懂的……),用log4net配置比較麻煩。今天在網上查看Linq to Nhibernate資料的時候發現了一個工具LinqPad,於是又找了相關資源,發現它還真能實現Nhibenate語句的查看。廢話少說,看下面的使用方法吧!
1、 下載LinqPad,地址:http://www.linqpad.net/
2、 配置LinqPad,運行LinqPad,在菜單里選擇Query—>Query Propeties;在選項卡中Additional References,點擊「Browse…」按鈕,選擇項目中必要的Dll。
Dll包括:資料庫驅動dll,實體映射dll(圖中的Entity),nhibernate相關的dll
⑵ nhibernate 怎麼寫sql語句啊 急
nhibernate 怎麼寫sql語句啊 急
NHibernate 檢視生成的sql語句:
其實就是Interceptor的應用, 原始碼中Interceptor的預設實現是EmptyInterceptor,
[Serializable]
public class EmptyInterceptor : IInterceptor
{ 前面省略n行程式碼
public SqlString OnPrepareStatement(SqlString sql)
{
return sql;
}
} public class MyInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
return base.OnPrepareStatement(sql);
}
} 我們要做的就是繼承EmptyInterceptor,重寫OnPrepareStatement()方法,重寫方法裡面就是你大展拳腳的地方了,
想寫檔案寫檔案,想輸出到頁面就輸出到頁面,什麼都不做都可以,如上
怎麼用呢?
public override void Update(Admin entity)
{
ISession session = HibernateTemplate.SessionFactory.OpenSession(new MyIntercepotr);
session.Update(entity);
session.Flush();
}
在你想要檢視的操作中,開啟session 的時候新增上自定義的攔截器就可以了,想給所有的操作都配置的話就要用到全域性配置檔案了。
重寫OnPrepareStatement()的時候一句話都不改,我只是在這里打一個斷點而已,只要看看生成的sql語句就行了,然後去修改配置檔案再來debug,確認怎麼配置生產的sql最優。
用LinqPad檢視Nhibernate生成的sql語句
使用Nhibernate開發一般都要對Nhibernate生成的sql語句進行檢視及分析,檢視Nhibernate生成的sql語句,可以使用NHProfiler和log4。但NHProfiler是要付費的(當然,在天朝,你懂的……),用log4配置比較麻煩。今天在網上檢視Linq to Nhibernate資料的時候發現了一個工具LinqPad,於是又找了相關資源,發現它還真能實現Nhibenate語句的檢視。廢話少說,看下面的使用方法吧!
1、 下載LinqPad,地址::linqpad./
2、 配置LinqPad,執行LinqPad,在選單里選擇Query—>Query Propeties;在選項卡中Additional References,點選「Browse…」按鈕,選擇專案中必要的Dll。
Dll包括:資料庫驅動dll,實體對映dll(圖中的Entity),nhibernate相關的dll
如何播放藍光碟?急!
要藍光播放器啊
tmt
powerdvd
aurora blu-ray player
隨便弄個破解的就成
你要是不切換字幕音訊啥的,就BDMV 檔案里邊,找最大的.m2ts 的檔案
急,女朋友讓猜迷語呢!!
名字,結婚後,女人是不會用男人的名字的,也不對。
只有男人的姓氏,才是正確答案,理由如下:
1、東方女人在結婚後,人會稱其「某太太」,這個「某」就是老公的姓氏。
西方女人在結婚後,就會將姓改為和老公一樣。
2、長度上,東方的姓氏通常只有一個字,而西方姓氏卻是一串字母,比東方的長。
3、男人當和尚後,只有法號,沒有姓名,所以不用。
小金毛拉肚子··急
是吃撐的拉肚子就給他吃些健胃消食的葯
要是吃壞肚子了就給它喝一支慶大黴素的注射液
關於基金定投---急!
用身份證登陸登陸你買的基金的基金公司網站
密碼是你的身份證後6位數字。。
登陸進去後,就可以查到您所想知道的資訊了!
還有一種方式是你去銀行櫃台列印基金對賬單,上面也會有你想知道的資訊!
急!化學,SO2的制備
應該該不會產生H2,可以用排NaOH溶液的方法收集,再點燃收集到的氣體看看是不是H2。但估計正常情況下,收集不到氣體。
寫一個小片段~~~急
今天舉行同事聚餐,公司幾個美女打扮的千姿百態,在這個風和日麗的天氣里,一起去「全聚德」烤鴨店撮了一頓,大家都對那烤鴨贊不絕口,一邊津津有味的吃,一邊興致勃勃的侃大山,公司的美女真是多,鶯鶯燕燕坐滿一屋芳菲,真是百花盛開呀!
數學題,求解答,急啊
我敢打賭 你上課沒認真聽
4:sin(2x+π/2)=cos2x,這是三角函式的誘導公式 書上有 y=cos2x是偶函式 這種東西你畫個圖就容易理解了!
5:設a=(i,j) b=(x,y) 若ab, i/x=j/y
6:a·b=|a|*|b|cos<a,b> 這是公式 推導過程 自己看書
7:橫座標伸長2倍 就是擴大2倍 那麼就是用1/2x替換以前的x 就行了!這個還是要根據自己畫圖來理解!
8:[π/2,π]之間 就確定了cosΘ的正負 在[π/2,π]之間 cosΘ為負數,至於你後面那個式子
是根據二倍角公式 推導而來的
這是二倍角公式的其中一個
cos2α=cos²α-sin²α
=1-2sin²α
=2cos²α-1
上式中 可以找到你要的依據!
不過你字還算可以!
usewildcards是什麼意思,急!
Use Wildcards
使用萬用字元;
Use Wildcards
使用萬用字元;
Use Wildcards
使用萬用字元;
布滿造句長一點,急!
因為要搶救傷員,軍醫在手術室里忙了幾天幾夜,眼睛布滿了血絲,讓人既心疼又感動。
滿意請採納!謝謝!
⑶ 在做asp.net網站時,使用NHibernate可是不顯示執行的sql語句,怎樣能查看到
調試的時候,看下面的輸出欄。
配置文件設置:
<property name="show_sql">true</property>
⑷ 如何查看NHibernate中生成的SQL
生成mapper的時候一般都有一個xml文件,你點開那個xml文件就能看到裡面sql語句了