それは私だけですか、それともうまくいかないようですか?
モデルでは、最初に単純なテーブルをドラッグして列挙型を作成しました (列挙型への変換を介して)。ダイアログで列挙型アイテムを作成して、作成せずに試してみましたが、参照外部型にチェックを入れると、次のようになります。
指定されたスキーマは無効です。エラー: 概念型 'ControlPanelDevModel.EventType' に対応するオブジェクト レイヤーの型が見つかりませんでした。
それは私だけですか、それともうまくいかないようですか?
モデルでは、最初に単純なテーブルをドラッグして列挙型を作成しました (列挙型への変換を介して)。ダイアログで列挙型アイテムを作成して、作成せずに試してみましたが、参照外部型にチェックを入れると、次のようになります。
指定されたスキーマは無効です。エラー: 概念型 'ControlPanelDevModel.EventType' に対応するオブジェクト レイヤーの型が見つかりませんでした。
上記の補足として、外部列挙型をtinyintのデータベース型にマッピングするときに同じエラーが発生することがわかりました。
解決策は、この投稿で指定されているように、Enum を型「byte」から継承させることです。
私のブログ投稿を見てください-外部列挙型を作成して使用する方法を示しています:http://blog.3d-logic.com/2012/09/11/using-exisiting-enum-types-in-entity-framework- 5/ .NET Framework4.5に同梱されているEF5RTM(EF June CTP 2011ではない)を使用している場合は、EDM列挙型のメンバーを指定する必要はありません。重要なことは、EDM列挙型の名前が外部CLR列挙型の名前と一致し、基になる型が同じであることを確認することです(基になる型が指定されていない場合は、C#/VBと同様にEdm.Int32が使用されます。 NET-intが使用される場所)。EDM列挙型のメンバーを分離する場合は、名前や値がC#/VB列挙型のメンバーと異なるメンバーを使用しないでください。また、EDM列挙型でCLR列挙型のすべてのメンバーを指定する必要はありません(実際、上で指摘したように、メンバーがいない可能性があり、すべてが機能するはずです)。