2

我們開始在使用SQL Server 2008 R2 Express存儲的C#項目中使用.NET版本的OrmLite。 https://github.com/ServiceStack/ServiceStack.OrmLite在SQL Server 2008 R2 Express中使用ServiceStack.OrmLite的Unicode字符串

現在我們發現,通過使用SQL Server的ORM映射器,不可能將Unicode字符保存到表中。

我們需要多語言應用程序(因此在SQL Server中設置特定的LOCALE不是解決方案)。

我們還測試了使用純ADO.NET一切正常!

我們還試圖設置配置選項:

OrmLiteConfig.DialectProvider.UseUnicode = true; 

以不變應萬變!
(我認爲這是隻涉及表的創建不是字符串保存...)

+0

你在你的數據庫列中使用什麼數據類型來存儲這個字符串? –

+0

在我發現的源代碼中,沒有使用參數化查詢參數 - 字符串值被連接起來以生成創建/上傳/刪除SQL語句! 爲了解決這個問題,我轉移到了Dapper ORM並做了一些修改以適合我的項目需求。 –

+1

我和MySQL和OrmLite有類似的問題。添加CharSet = utf8;到連接字符串的末尾讓它爲我工作。也許有一種類似的方法來在連接字符串中聲明SQL Server的字符集。 – swax

回答

1

誰的人仍然遇到這個問題:在OrmLite的v3.9.71此問題已得到修復,如果你設置OrmLiteConfig.DialectProvider.UseUnicode = true;

這將改變底層查詢使用Unicode。

相關問題