發表文章

目前顯示的是 9月, 2012的文章

.NET – Distinct SQL Statement of NHibernate’s QueryOver

圖片
NHibernate 中提供 QueryOver 的方式來產生 SQL Statements, 當需 distinct 時又需如何使用呢? Session.QueryOver<Contact>()     .Select(         Projections.Distinct(             Projections.ProjectionList()                 .Add(Projections.Property<Constact>(x => x.Id).As(“ConstactId”)         )     )     .TransformUsing(Transformers.AliasToBean<Contact>()); 產生 SQL 如下所示 :

.NET – NHibenate & log4net 的配置

圖片
如果你只想要顯示 NHibernate 在 unit test 在查詢 database 時使用 SQL 時, 只需在 NHibernate configuration file 中加入 show_sql key 即可. 現在, 當在執行任何 unit test 時, NHibernate 產生 SQL queries 時, NHibernate 將會記錄至 output window. 那如果想使用 log4net 來收集 NHibernate 產生的 logging information 時在 config file 中加入一些必要的 configuration. 最後需通知 application 要使用 log4net(ex: 如建立 web application 時就放至 “ Global.asax ”) 最後在 output window 會顯示如下相同的訊息. NHibernate 定義二個不同的 loggers NHibernate   和 NHibernate.SQL .第一個接收所有 NHibernate 產生的 logging.第二個只接收 NHibernate 產生 SQL Statements.