2017-04-30 8 views
3

データベースにすべてのnvarcharカラムを含むデータベースを作成した既存のEFコードの最初のプロジェクトがあります。今私は統計的な目的のために同じデータベース上で別のプロジェクトを開始しています。しかし、この新しいプロジェクトでは、同じデータベースを指すEFコアを使用しています。新しいプロジェクトを実行しようとすると、次のエラーが表示されます。EFコアでnvarcharをサポートする

"この型ではデータ型 'VARCHAR'はサポートされていません。型名に長さを明示的に指定するか(たとえば 'VARCHAR(16)')、HasMaxLengthなどのAPIを使用してデータ型を削除しますEFはデータタイプを選択します。

私はすでにデータベースに実動データを持っているので、私は列の型に最小限の影響を与えたいと思っていますが、私の新しいプロジェクトではECコアを使用することはできません。私は非常に多くのnvarcharの列を持っているので、個々のテーブルの設定を設定するのは難しい作業です。誰でも私を正しい方向に向けることができますか?

答えて

0

これはEntityFrameworkCoreの2.0リリースの問題のようです:あなたは、それまで待機することがありので、2.1で修正され得ることになってhttps://github.com/aspnet/EntityFrameworkCore/issues/9188

それ以外の場合は、手動でこのようにそれを修正することをお勧め:

  entity.Property(e => e.Comments) 
       .HasColumnName("Comments") 
       .HasColumnType("nvarchar(4000)"); // <- Add this 
+0

db-firstでは、自動的にこれを行う必要があります。 –

0

私はデータアノテーションを使用していますし、それはまだ動作します。 [Column(TypeName = "varchar(50)")]

+0

そして私はDBをまず使用していますが、うまくいきません。 –

+0

私はnet coreがDBを最初にサポートしていないと思っていましたが、私の場合は最初にコードを使用しています –

+0

最初に正しい人がコードを使用するのは誰ですか?地獄へのハイウェイ... –