For a new client's requirement, we needed to support Oracle as a DB source for our software (currently MS SQL Server only).

 

Aftert changing all the schema exported from SQL Server Management Studio, found out that need to support Unicode for god knows why though we are not international what so ever.

 

Anyway, after changing all varchar2 to nvarchar2, still didn't properly work for some cases (was retrieving or saving, cannot remember), found out that I need to set in NHibernate (Fluent NHibernate) session factor like

 

.ExposeConfiguration(x => x.SetProperty("oracle.use_n_prefixed_types_for_unicode", "true");

 

(Ref: https://nhibernate.info/doc/nhibernate-reference/session-configuration.html)

 

Yeh yeh, very obvious. Not sure how easier, going to support fully for Oracle, cannot wait for moving away from NHibernate and Entity Framework or something.