2012-11-19 8 views
8

Visual Studio 2012 Professionalを入手したばかりで、Entity-Framework(5.0)デザイナを使用しています。プロパティをEnumに変換しようとしていて、this Microsoft videoに従ってプロパティを右クリックし、Convert to Enum(2:06)を選択します。コンテキストメニューで変換するオプションはありません。Enumに変換

ここでは、役割を列挙型に変換しようとしています。 RoleをInt32に設定しました。

enter image description here

私が間違って何をしているのですか?

答えて

8

ポストのビデオに続いて、私はModel Browserを開いて手動で列挙型を追加しました。私がそうした後、私が作成したenumにロールを設定します。プロパティにConvert To Enumができるかどうかをテストするために、タイプをInt32に変更してから、プロパティを右クリックして低レベルにしてコンテキストメニューのConvert To Enumオプションを確認してください。

問題が発生した場合は、これを使用してConvert To Enumオプションを有効にしました。私の意見では、これは新しいソリューションとプロジェクトでこの動作を再現することができないので、これはハックです。最初にモデルブラウザが初めて開かれた(または以下の完全なステップ)と、明らかにConvert To Enumオプションが表示されています。

-1。クイック起動検索ウィンドウを使用して、Model Browserと入力して開きました。

Model Browser search

-2。モデルモデルのモデルブラウザでEnum Typesを右クリックしてAdd New Enum Type...を選択します。

enter image description here

-3。列挙型にプロパティを設定し、コンボボックスにリストされている型の一番下までスクロールし、列挙型を選択します。

+1

これは奇妙なことですが、モデルブラウザに 'Enum Types'フォルダが表示されません。 –

+3

@asattar .Net Framework 4.5をターゲットにするとEnum Types Folder olnyが表示されることに注意してください。 –

0

プロパティをenumプロパティに変換しようとする前に、そのプロパティのタイプは何でしたか? [Enumに変換]オプションは、プロパティの型が列挙型の基になる型(Edm.Byte、Edm.SByte、Edm.Int16、Edm.Int32またはEdm.Int64)のいずれかの型の場合にのみ使用できます。プロパティの型がこれらの型のいずれでもない場合は、デザイナーが基になる型を知ることができず、データベースで動作するかどうかが重要であるため、列挙型に直接変換することはできません。

+0

気づいたら、それがInt32であることを通知しました。 –

+0

私はそれを見逃しているに違いない。これを一貫して再現するための措置(またはこれを見て調査するプロジェクト)を用意していますか? – Pawel

+0

私の答えでは、私はそれを固定した後、私はそれを再現できないと言った。私が考えることができる唯一のオプションは、VS2012を再インストールして新しいプロジェクトC#Lightswitchを追加し、C#クラスライブラリを追加し、ADO.Netエンティティアイテムを追加し、右クリックしてエンティティ(ツールボックスを使用せずにモデルブラウザをクリックします)その型をint32に設定し、右クリックしてenumに変換しようとします。それは私が要約して始めたことですが、いくつかのエンティティといくつかの関連付けを最初に追加してから、enumを作成しようとしました。 –

4

この問題もありました。エンティティフレームワークを4から4.5に変更し、問題を解決しました! ;)

+2

あなたは以下のMagaのように、4.5への.Net Frameworkを意味します。もちろん、 – SeanLAllen

+0

もちろん。 ;) –

+0

最初の答えは.net Framework 4.5です。 –

3

同じ問題が発生したときの解決策は、ターゲットフレームワークを「.NET Framework 4.5」に設定することでした。

関連する問題