2012-09-28 74 views
6

實際上,在我沒有使用框架或LINQ之前,只需鍵入sql語句與Sqlcommand類,我鍵入insert into table values(N'sample') 實際上我不知道什麼是N,但它適用於中文和其他語言,否則,會插入一些問號。EntityFramework更新或插入中文或非英文文本

但是,當我使用EntityFramework,這種框架總是插入一些問號,我可以問如何解決這個問題。

N表示Unicode? 你能給我一個EntityFramework使用這種事情的例子嗎?

+0

是的,你可以問...... :) – gdoron

+0

順便說一句,我測試EF與希伯來文在它工作得很好。中文是否包含在unicode中? – gdoron

+1

它可能取決於數據庫的外觀。如果您使用的是SQL Server - 您的列是nvarchar還是nchar?在EF中,字符串屬性需要將Unicode設置爲true。您是先使用CodeFirst還是數據庫/模型? – Pawel

回答

0

確保在裝有用於中文的sqlserver的服務器上安裝了語言包。

4
    中的.edmx表,選擇列
  1. - >檢查其屬性,並設置統一到
  2. 重新產生真正的表,如果你是在代碼第一次Apporach工作
  3. 檢查你的數據庫表,它應該是爲nvarchar或ntext數據類型

這樣EF將保存unicode字符。

enter image description here

+0

這解決了我的問題...從「????」文本到真正有效的字符串謝謝 – OldTrain

0

,我們只是改變了數據類型爲nchar()或nvarchar和它的工作。它能夠以除英語以外的任何語言存儲數據。

2

我對尼泊爾語有完全相同的問題。我必須將sqlserver的數據類型從varchar轉換爲nvarchar,然後在實體框架映射中刷新我的* .edmx文件。然後它運行良好。

VARCHAR(255)=>爲nvarchar(255)

VARCHAR(MAX)=>爲nvarchar(MAX)

在EDMX文件右鍵點擊該表映射和刷新。保存更改。