だから、私は次のようなクラスを持っています:
public class Message {
public enum MessageType {
Text = 0,
Audio = 1,
Image = 2
}
public int Uid { get; set; }
public MessageType Type { get; set; }
public String Text { get; set; }
}
ご覧のとおり、Type フィールドは列挙型です。データをこのクラスに一致させるための私のマッピングは、次のように定義されています。
public class MessagesMap : EntityTypeConfiguration<Message> {
public MessagesMap() {
// Primary Key
this.HasKey(t => t.Uid);
// Properties
this.Property(t => t.Text)
.HasMaxLength(1000);
// Table & Column Mappings
this.ToTable("wc_messages");
this.Property(t => t.Uid).HasColumnName("UID");
this.Property(t => t.Type).HasColumnName("Type");
this.Property(t => t.Text).HasColumnName("Text");
}
}
しかし、コードを実行すると、次のエラーが発生します。
プロパティ 'Type' は、タイプ 'Message' で宣言されたプロパティではありません。Ignore メソッドまたは NotMappedAttribute データ注釈を使用して、プロパティがモデルから明示的に除外されていないことを確認します。有効なプリミティブ プロパティであることを確認してください。
Type プロパティはプリミティブではなく、列挙型であるため、エラーが発生していることを理解しています。ただし、正しく理解していれば、EF5 は列挙型をサポートしている (そして、.NET 4.5 フレームワークをターゲットにしている) ため、列挙型に変換する方法を説明していないマッピングに何かが欠けていると思いますが、途方に暮れていますそれが何であるかについて。フィールドを int に戻すと、すべて正常に動作します。エラーが発生するのは、フィールド タイプが列挙型の場合のみです。
私は何が欠けていますか?前もって感謝します。