我正在使用NHibernate與傳統rdbms規則引擎。我正在使用GenericDialect但生成的一些sql不起作用。如果我需要編寫自定義方言這個規則引擎怎麼啓動?如何編寫自定義nHibernate方言?
0
A
回答
3
我會從抓取nhibernate源碼開始,2.1.x分支是here。現有的Dialect都在src/NHibernate/Dialect下。
複製一個並開始黑客攻擊。基類Dialect
有許多擴展點。
7
這是一個例子方言:
using System;
using System.Collections.Generic;
using System.Web;
///
/// This class ensures that the tables created in our db are handling unicode properly.
///
public class NHibernateMySQL5InnoDBDialect : NHibernate.Dialect.MySQL5Dialect
{
public override String TableTypeString { get { return " ENGINE=InnoDB DEFAULT CHARSET=utf8"; } }
}
它在裝配有NHibernate.dll參考
hibernate.cfg.dll(請注意,我沒有「connection.connection_string」屬性在這裏設置,這是我的設置特定的,通常你會在這裏連接字符串):
<?xml version="1.0" encoding="utf-8"?>
<!-- This is the ByteFX.Data.dll provider for MySql -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="dialect">NHibernateMySQL5InnoDBDialect, Assembly1</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
</session-factory>
</hibernate-configuration>
在某些設置方言線將
<property name="dialect">Assembly1.NHibernateMySQL5InnoDBDialect, Assembly1</property>
和代碼創建一個ISessionFactory:
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.Configure();
cfg.Properties["connection.connection_string"] = ConnectionStringForDatabase();
cfg.AddDirectory(PathToMappingsIfYouUseNonStandardDirectory);//not needed if using embedded resources
return cfg.BuildSessionFactory();
相關問題
- 1. NHibernate自定義方言
- 2. 如何編寫自定義斷言Python
- 3. 如何編寫自定義斷言?
- 4. 如何編寫自定義XCTest斷言的自動化測試?
- 5. 如何編寫自定義的NHibernate HQL發電機
- 6. 如何編寫自定義JUnit斷言的測試?
- 7. 如何編寫自定義PHPUnit斷言,其行爲如同內置斷言?
- 8. Boost.Asio:如何編寫自定義AsyncReadStream?
- 9. 如何編寫自定義例外?
- 10. 如何編寫自定義JOptionPane按鈕?
- 11. 如何編寫自定義ExpandableListAdapter
- 12. 如何編寫自定義UITextField類
- 13. jQuery - 如何編寫自定義隊列?
- 14. 如何編寫自定義printf?
- 15. 如何編寫自定義函數CNTK
- 16. 如何編寫自定義Linq組合
- 17. 如何編寫checkstyle自定義檢查?
- 18. 如何編寫自定義dbcontext
- 19. 用def編寫自定義方法
- 20. 如何編寫自定義流式自定義操作器
- 21. 爲自定義語言編寫文本編輯器
- 22. NHibernate的:自定義方言 - 如何在一個單獨的程序
- 23. 如何編寫一個包含自定義Shape類的方法
- 24. 如何編寫自定義視圖的設置方法
- 25. 如何爲array.prototype.find作爲自定義方法編寫polyfill?
- 26. 如何在RoR中編寫自定義方法?
- 27. 如何在Python中編寫自定義的`.assertFoo()`方法?
- 28. 如何爲字體和方向編寫自定義IBInspectable?
- 29. 如何編寫自定義servlet上下文初始化方法
- 30. 如何在java中編寫自定義函數/方法? (RFT)