2012-11-19 184 views
8

我剛剛獲得了Visual-Studio 2012 Professional,並使用了Entity-Framework(5.0)設計器。我一直在嘗試將一個屬性轉換爲Enum,並根據this Microsoft video我右鍵單擊該屬性並在(2:06)處選擇Convert to 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 –

0

當您嘗試將其轉換爲枚舉屬性之前屬性的類型是什麼?僅當屬性的類型是可以是枚舉基礎類型的類型之一--Edm.Byte,Edm.SByte,Edm.Int16,Edm.Int32或Edm.Int64時,纔可以使用「轉換爲枚舉」選項。如果屬性類型不是這些類型中的一種,則不能直接將其轉換爲枚舉,因爲設計人員不知道底層類型應該是什麼,更重要的是它是否適用於您的數據庫。

+0

,Enum Types Folder olny就會出現如果你注意到了,我發佈它是一個Int32。 –

+0

我一定錯過了它。你是否有步驟重複這一貫(或我可以打開看到這個和調查)? – Pawel

+0

在我的回答中,我說我在修復它後無法再現它。我能想到的唯一選擇是重新安裝VS2012並添加新項目C#Lightswitch,然後添加C#類庫,添加ADO.Net實體項目,右鍵單擊添加實體(不使用工具箱並且不要單擊模型瀏覽器),然後添加一個屬性,將其類型設置爲int32,然後嘗試右鍵單擊轉換爲枚舉。這就是我之前做的簡而言之,儘管在嘗試創建枚舉之前我先添加了其他幾個實體和一些關聯。 –

4

我也有這個問題!我將實體框架從4改爲4.5,問題解決了! ;)

+2

你的意思是4.5的.Net框架,就像Maga下面說的那樣。 – SeanLAllen

+0

當然是。 ;) –

+0

首先回答提到.net Framework 4.5。 –

3

當我遇到同樣的問題時,解決方案是將Target Framework設置爲「.NET Framework 4.5」。