Database first design を使用し、tinyint (または smallint) 列を持つ:
[MyEnumColumn] [tinyint] NOT NULL
この列をEDMの列挙型にマッピングしました
External Type: NSpace.MyEnumType
Name:MyEnumType
UnderlyingType:Byte
NSpace.MyEnumType は次のように定義されています。
public enum MyEnumType
{ One, Two, Three, All }
コンテキストからエンティティを読み込もうとしたときにのみ、このエラーが発生します。
指定されたスキーマは無効です。エラー:
概念型 'EntityDataModel.MyEnumType' に対応するオブジェクト レイヤーの型が見つかりませんでした。
次の情報は、前のエラーを解決するのに役立つ場合があります。
CLR 列挙型の基になる型が、EDM 列挙型の基になる型と一致しません。
[Smallint] と [Int16] を使用する場合も同じですが、データベースを [Int] に変更し、列挙型を [Int32] に変更すると、エラーはなくなります。
99.9% の時間で列挙型に 256 個を超えるアイテムがない場合、または他に何か不足している場合に、列挙型の値を 1 バイト (Tinyint) ではなく 4 バイト (Int) データ フィールドに格納する必要があるのはなぜですか?