2
我正在一起使用NHibernate與Firebird數據庫和不知道如果String類型是否正確映射NHibernate的字符串映射。在.NET中,String-Type通常是UTF16編碼的。在Firebird中,我定義了我的域名wie字符集UTF8。到UTF8
所以,如果我有這個域名級:
public class Project
{
public virtual Int64 ID { get; set; }
public virtual String Name { get; set; }
}
,這NHibernate的映射:
<class name="Project">
<id name="Id">
<generator class="sequence">
<param name="sequence">MY_GEN</param>
</generator>
</id>
<property name="Name"/>
</class>
不NHibernate的自動我System.String轉換爲火鳥UTF8字符串在這種情況下? 這似乎是在數據庫中確定。但我不確定在NHibernate中的處理。
它是誤導說「在.NET字符串型通常UTF16編碼」,因爲編碼是指序列化形式。一個字符串是*不是*;一個字符串是原始的Unicode代碼點 - 完全不同。通常,ADO.NET驅動程序(或其他驅動程序)將負責此步驟 - 在大多數情況下,我不希望ORM工具與編碼有任何關係。 –