2012-11-19 11 views
8

Właśnie uzyskałem Visual-Studio 2012 Professional i używam projektanta Entity-Framework (5.0). Próbowałem przekonwertować właściwość do Enum i zgodnie z this Microsoft video klikam prawym przyciskiem myszy właściwość i wybieram Convert to Enum w (2:06) - nie ma opcji do konwertowania w moim menu kontekstowym.Konwertuj na wyliczenie

Tutaj próbuję przekonwertować rolę do wyliczenia. Ustawiłem opcję Rola na Int32.

enter image description here

Co robię źle?

Odpowiedz

8

Po filmie w postu, otworzyłem Model Browser, aby dodać Enum ręcznie. Po tym, jak to zrobiłem, i ustawić Role na enum, który stworzyłem. Aby przetestować, czy mogę teraz Convert To Enum na właściwości, zmieniłem typ z powrotem na Int32, a następnie kliknij prawym przyciskiem właściwości i niski i zobacz widzę opcję Convert To Enum w menu kontekstowym!

Tak więc, jeśli masz problemy, są to kroki, których użyłem do włączenia opcji Convert To Enum. Moim zdaniem jest to hack, ponieważ teraz nie mogę odtworzyć tego zachowania za pomocą nowego rozwiązania i projektu. Wygląda na to, że po pierwszym uruchomieniu przeglądarki Model Browser po raz pierwszy (lub w pełnych krokach poniżej) wyświetli się teraz opcja Convert To Enum.

-1. Używając okna wyszukiwania Quick Launch, wpisałem Model Browser i otworzyłem.

Model Browser search

-2. Wybierz opcję Add New Enum Type..., klikając prawym przyciskiem myszy Enum Types w przeglądarce modeli dla swojego modelu danych.

enter image description here

-3. Ustaw właściwość na wyliczenie, przewiń do dołu listy typów w polu kombi i wybierz wyliczenie.

+1

To jest dziwne, nie widzę folderu "Typy Enum" w mojej przeglądarce modeli. –

+3

@asattar Zwróć uwagę, że katalog typów folderów enum pojawia się, gdy kierujesz się na .Net Framework 4.5 –

0

Jaki był typ nieruchomości przed próbą przekonwertowania jej na własność enum? Opcja Konwertuj na wyliczenie jest dostępna tylko wtedy, gdy typ właściwości jest jednym z typów, które mogą być typu podstawowego: Edm.Byte, Edm.SByte, Edm.Int16, Edm.Int32 lub Edm.Int64. Jeśli typ właściwości nie jest jednym z tych typów, nie można go przekonwertować do wyliczenia bezpośrednio, ponieważ projektant nie wiedziałby, jaki powinien być bazowy typ, a co ważniejsze, czy działałoby z bazą danych.

+0

Jeśli zauważysz, napisałem, że jest to Int32. –

+0

Musiałem tego nie zauważyć. Czy masz kroki do konsekwentnego powtarzania tego (lub projektu, który mógłbym otworzyć, aby to zobaczyć i zbadać)? – Pawel

+0

W mojej odpowiedzi powiedziałem, że nie mogę go odtworzyć po "naprawieniu" go. Jedyną opcją, którą mogę pomyśleć, jest reinstalacja VS2012 i dodanie nowego przełącznika Lightswitch projektu C#, następnie dodanie biblioteki klasy C#, dodanie elementu ADO.Net Entity, kliknięcie prawym przyciskiem myszy add Entity (bez użycia toolbara i nie kliknięcie przeglądarki modelu), a następnie dodanie właściwość, ustaw jej typ na int32, a następnie spróbuj kliknąć prawym przyciskiem myszy, aby przekonwertować do wyliczenia.To, co zrobiłem, zacząłem w skrócie, chociaż najpierw dodałem kilka innych elementów i skojarzeń, zanim spróbowałem stworzyć enum. –

4

Ja też miałem ten problem !! zmieniłem strukturę obiektu z 4 na 4.5 i problem rozwiązany! ;)

+2

Masz na myśli .Net Framework do wersji 4.5, jak Magia mówi poniżej. – SeanLAllen

+0

tak, oczywiście. ;) –

+0

Pierwsza odpowiedź na wzmiankę o .net Framework 4.5. –

3

Kiedy miałem ten sam problem, rozwiązaniem było ustawienie Target Framework na ".NET Framework 4.5".