12

Udało mi się stworzyć model pierwszego modelu DBContext (zanim powstał normalny model oparty na ObjectContext).Dodawanie klas modeli sterownika nie pokazano

O dziwo, mój VS nie pokazuje ŻADNEJ z moich klas w Liście modeli w "Dodaj kontrolera". Tutaj pokazane jest wszystko, co zewnętrzne, z wyjątkiem mojego własnego stufu. Tak - skompilowałem kod, kod kompiluje się bez błędów i ponownie uruchamia VS wiele razy. Nie ma pojęcia, co się dzieje.

To samo dotyczy selektora klasy Kontekst danych.

Manuelly ustawienie klasy nie działa. Dodaj zawsze będzie narzekać, że muszę wybrać z listy.

Gdzie jest VS uzyskiwanie danych do wypełnienia listy?

ramowa: MVC4, VS2010, EF4.3.1

+1

Oczywiste pytanie: brak odniesienia do zestawu zawierającego model EF? –

+0

Model EF znajduje się w tym samym projekcie co klasy kontrolera. Dziwnie nie pokazano żadnej klasy z mojego projektu - tylko klasy zewnętrzne. – Obiwan007

+0

Zbudowałem/debugowałem projekt, naprawiłem mój. – Rusty

Odpowiedz

0

Utwórz nową stronę internetową MVC. Dodaj istniejące (twoje klasy modelu) - sprawdź, czy działa, a następnie rozpocznij porównywanie dwóch projektów.

+0

Wypróbowałem to. Klasy modeli można znaleźć na liście wyboru w nowym projekcie. Niestety nie mogłem wykryć żadnych innych oczywistych różnic. Jedną opcją byłoby obniżenie wersji EF4.3 do EF4.1, ponieważ 4.1 jest używane domyślnie. Na moim głównym projekcie zaktualizowałem go poprzez nuget. – Obiwan007

+0

Nie wydaje się być problemem w bibliotekach EF. Może ma to coś wspólnego z generowaniem samych klas modelu, ponieważ są teraz budowane przez szablon (model.tt). Z drugiej strony - jego praca nad prostym projektem SPA - bardzo dziwna. – Obiwan007

1

W końcu udało mi się ponownie uruchomić rusztowanie. I refactored my model.edmx z głównego projektu. Elementy szablonu będą teraz generować klasy modeli w tym nowym projekcie modelu. Po dodaniu projektu modelu do projektu głównego, klasy są ponownie wyświetlane w oknie wyboru modelu kontrolera. Dziwne, ponieważ wydaje się działać w zupełnie nowym rozwiązaniu konfiguracyjnym bez separacji ...

3

Powodem, dla którego to działało jest to, że umieszczając go w innym projekcie "zbudowałeś" go, a następnie pojawił się. Gdybyś zbudował swój pierwszy projekt, a potem próbował dodać kontrolera, byłby tam.

+1

Używam go w tym samym zespole, którego brakuje. – Shimmy

12

Miał ten sam problem. Okazało się, że samo budowanie projektu nie rozwiązało problemu z brakującymi klasami modeli. Przebudowa projektu jednak rozwiązała go od razu.

+0

To zadziałało dla mnie. Wydaje się dość częste, że kompilacja jest potrzebna do odświeżenia tego rodzaju list dialogowych. – HoratioCain

1

prawdopodobnie związane: Add View Model class dropdown not showing my class

Szukałem rozwiązania tego podczas dodawania kontrolera, ale osiągnął wspomniany słupek wcześniej niż osiągnięcie tego. Usunięcie AssemblyInfo.cs i ustawienie właściwości projektu zadziałało dla mnie (dla VS2010).

1

Miał ten sam problem z modelem EF w oddzielnym projekcie, od którego zacząć.

Przebuduj wszystko, nic nie zrobiłeś, ale po prostu ponowne załadowanie do nowej instancji Visual Studio naprawiło to.

2

Miał ten sam problem. Naprawiłem to.

  • Oddziel EF w innym projekcie biblioteki klas.
  • dodaj odniesienie w głównym projekcie internetowym.
  • dodać ciąg połączenia w pliku konfiguracyjnym projektu WWW.
0

Po prostu doświadczyłem tego problemu w projekcie, który działał. Nie było żadnych aktualizacji do EF lub MVC, po prostu zaczęło się wyrzucanie wiadomości "Nie ma klas modelu ...". Zrobiłem kopię zapasową mojego projektu, usunąłem go z mojej HD i otrzymałem najnowszą wersję ze źródła kontroli, w tym przypadku SVN. Przebudowałem projekt i teraz działa on ponownie, podobnie jak magia.

VS 2012 EF 5.0 .NET 4.5 MVC 4.0

3

"Dodaj kontroler" model Klasy nie pokazane na rusztowanie

Environment Używane: ASP.NET MVC5 przy użyciu C# Visual Studio 2013

Rozwiązanie 1: Jeśli nazwa rozwiązania jest SAME jako nazwa projektu, po prostu czyste rozwiązanie Build Solution. To będzie działać.

Rozwiązanie 2: Jeśli nazwa rozwiązanie różni się od nazwy projektu, a następnie sprawdzić poniżej kroków:

(i) Sprawdź swoją klasę modelu (a) nazw jako

namespace SolutionName.ProjectName.Models 
{ ...} 

przypuszczać nazwa rozwiązaniem jest „WGT "i nazwa projektu to" MS ", a następnie klasa modeli: użytkownik powinien być

namespace WGT.MS.Models 
{ public class User{...}} 

(ii) Po tym, jasne rozwiązanie.

(iii) Rozwiązanie konstrukcyjne

Na pewno zadziała. Znalazłem to rozwiązanie po spędzeniu dużej ilości czasu. To praktyczne i wdrożone rozwiązanie.

+0

Nie wyjaśnisz, dlaczego te rozwiązania mogłyby w jakikolwiek sposób zadziałać. –

+0

Nie wiem dlaczego, ale czyszczenie rozwiązania sprawdziło się u mnie – abiNerd

0

Budowa/przebudowa nie działa dla mnie. Musiałem zamknąć i ponownie otworzyć rozwiązanie, a potem klasa wreszcie się pojawiła.

Powiązane problemy