2011-07-08 6 views
10

私は私のモデルクラスでのcharデータ型に列をマップしようとすると、私はエラーを取得する:Entity Frameworkのコードファーストで有効なプリミティブプロパティは何ですか?

The property '[ColumnName]' is not a declared property on type '[ClassName]'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property.

EFコードファーストの有効なプリミティブ型は何ですか?

答えて

16

これは興味深いですが、実際にはcharのプロパティをマップできません。私はちょうどそれをチェックして、データベース内char(1)を持っているしたい場合は、以下のマッピングにstringプロパティを使用する必要があります。

modelBuilder.Entity<MyEntity>() 
      .Property(p => p.MyProperty) 
      .HasMaxLength(1) 
      .IsFixedLength() 
      .IsUnicode(false); 

それはコード-最初の唯一の問題はありません。 EDMX設計者もcharタイプを表示していないので、EF全体の制限です。コードは最初は同じマッピングインフラストラクチャのラッパーであるため、許容タイプはCSDL referenceでEDMXの場合と同じになると思います。

+0

Hehe「EFコードファーストの有効なプリミティブタイプは何ですか?」 – X181

+0

ヒント:プライベートセッターを持つプロパティがある場合でもエラーが発生します。私の場合、プロパティは基本クラスにありました。 – X181