2016-06-27 8 views
1

エンティティフレームワーク6(Code FirstとFluent Api)を使用してASP.NET MVCプロジェクトでenumをマップする方法をインターネットで検索しました。検索では、このタイプのマッピングがJava(Hibernate + JPA)のようにtrivalではないことが示されました。Entity Framework 6でEnumプロパティをマッピングする方法

この問題を解決する方法のアイデアはありますが、別の方法があるかどうかはわかりません。

記事:http://eliot-jones.com/2015/03/entity-framework-enum

彼らは、マッピングのこのタイプの経験を共有することができますか?

Enumを正しくマップするにはどうすればよいでしょうか。

フィールドがデータベース内の文字列である可能性があるため、序数型または列挙型の名前で作業できるかどうかを知りたいと思います。

私は帰りをお待ちしております、ご注意いただきありがとうございます。

+0

なぜあなたはdbのintフィールドにマップしませんか? –

+0

あなたはそれを行う必要はありません、通常のようにマップし、dbフィールドの型が基礎となる列挙型(byte、short、int等)と同じである限り、それは正常に動作します。 –

+0

何もする必要はありません。モデルにはその列挙型のプロパティがあり、他のプロパティと同じようにマップするだけです。 byte、short、int、またはlongを使用するときのように、intでない場合でも列挙型を指定するようにしてください。データベースは自動的にその列をenum(tinyint、smallint、int、bigint)と同じ型にします。 – Igor

答えて

0

Hibernateでは、すべてのエンティティを自分でマッピングする必要がありますが、dbcontextでdbsetに登録したエンティティをマッピングするためのEntity Frameworkのデフォルトの動作があります。

public DbSet<Entity> Entities { get; set; } 

EFのデフォルトの動作が目的を満たさない場合は、流暢なAPIを使用する必要があります。しかし、あなたの問題(Enums in EF)では、デフォルトの動作が正しく動作し、何もする必要はありません。 enumeをデータベースにintとして保存します。 Entity Framework Enum Support

関連する問題