2012-09-28 19 views
6

実際には、フレームワークまたはlinqを使用しない前に、Sqlcommandクラスを使用してSQL文を入力してください。insert into table values(N'sample') 実際にはNは何もわかりませんが、それ以外の場合は、疑問符を挿入します。EntityFrameworkは、中国語または英語以外のテキストを更新または挿入します

しかし、私がEntityFrameworkを使用するとき、この種のフレームワークは常に疑問符を挿入します。問題にどのように対処するか尋ねることができます。

NはUnicodeを意味しますか? EntityFrameworkがそのようなことを使用しているという一例を教えていただけますか?

+0

はい、あなたが求めることができる... :) – gdoron

+0

私はヘブライでEFをテストしましたが、うまく動作します。中国語はユニコードに含まれていますか? – gdoron

+1

データベースがどのように見えるかによって異なる場合があります。 SQL Serverを使用している場合、列はnvarcharまたはncharですか? EFでは、stringプロパティのUnicodeをtrueに設定する必要があります。 CodeFirstやDatabase/Modelを先に使っていますか? – Pawel

答えて

0

中国語のsqlserverを保持するサーバーに言語パックがインストールされていることを確認してください。 .edmx表で

4
  1. 、列選択 - あなたは、コードファーストApporach
  2. で作業している場合>データベーステーブルをチェック
  3. 真再生成するテーブルにそのプロパティと設定ユニコードをチェックし、それはnvarchar型でなければなりませんまたはntextデータ型

このようにEFはUnicode文字を保存します。

enter image description here

+0

これは私の問題を解決しました... "????"実際の作業文字列へのテキストありがとう – OldTrain

0

私たちは()またはnvarchar型をNCHARするデータ型を変更し、それが働きました。それは英語以外の言語でデータを保存することができました。

2

ネパール語に関しても全く同じ問題がありました。私は、SQL Serverの列のデータ型をvarcharからnvarcharに変換し、エンティティフレームワークマッピングで* .edmxファイルを更新しなければなりませんでした。それはうまくいった。

VARCHAR(255)=>データ型はnvarchar(255)

のvarchar(MAX)=>データ型はnvarchar(MAX)

右EDMXファイルやリフレッシュにそのテーブルのマッピングをクリックしてください。変更を保存します。

関連する問題