2012-09-17 16 views
5

これは私だけですか、それともうまくいかないのでしょうか?EF5外部型の問題への列挙型の列挙

最初にモデルでは、単純なテーブルにドラッグしてenumを作成しました(enumへの変換を介して)。今、私は、ダイアログに列挙項目を作成せずにしようとしましたが、私は参照外部タイプにチェックを入れた場合、私は得る:指定

スキーマが有効ではありません。エラー:概念タイプ 'ControlPanelDevModel.EventType'に対して、対応するオブジェクトレイヤー タイプが見つかりませんでした。

答えて

8

私のブログ投稿を見てください - それは外部の列挙型を作成して使用する方法を示しています。http://blog.3d-logic.com/2012/09/11/using-exisiting-enum-types-in-entity-framework-5/ あなたはEF5 RTM(とないEF 6月CTP 2011)を使用している場合は、.NET Framework 4.5に同梱されて、あなたはしないでくださいEDM列挙型のメンバを指定する必要があります。重要なことは、EDM列挙型の名前が外部CLR列挙型の名前と一致し、基底型が同じであることを確認することです(Edm.Int32が使用される基になる型が指定されていない場合はC#/ VBと同様です)。 NET - intが使用されている場所)。 EDM列挙型でメンバーを分離する場合は、C#/ VB列挙型メンバーとは異なる名前または値のメンバーを持つことはできません。また、CLR列挙型のすべてのメンバーをEDM列挙型で指定する必要はありません(実際には、上で指摘したように、メンバーがいなくてもすべてが動作するはずです)。

+0

ありがとうございます!私は次の開発のためにこれを念頭に置いておく必要があります...残念ながら私のクライアントはサーバーを2008r2にアップグレードするつもりはないので、4.4に戻す必要があります。 –

+0

とdownvoteの理由は...? – Pawel

10

上記の補足として、外部の列挙型をtinyintのデータベース型にマッピングするときに同じエラーが発生していることがわかりました。

解決策は、このポストで指定されているように、 "バイト"タイプから継承することです。

Tinyint(byte),SmallInt(Int16) not compatible with Enum in EF5