我使用下面的配置让NHibernate连接到Oracle。在其中一个类中,我存储了一个unicode字符串,例如日本语(日本)。该列的数据字段是NVARCHAR2()但是,在检索数据时,该值是否已损坏显示??? (??)。在某个地方,我正在丢失我的编码,但在哪里丢失。有什么想法吗?
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
<property name="connection.connection_string_name">Oracle</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="cache.use_second_level_cache">true</property>
<property name="adonet.batch_size">30</property>
<property name="cache.provider_class">NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
</session-factory>
答案 0 :(得分:1)
NHibernate剂量不使用NVarChar2。 如果你想让NHibernate使用NVarchar2而不是你自己编写自己的数据库方言。
答案 1 :(得分:0)
无需编写自定义方言,用户类型就足够了。请参阅我对这个问题的回答: https://stackoverflow.com/a/61792204/5168579