2015-11-11 9 views
6

Zbudowałem prosty projekt ADO.Net MVC w Visual Studio 2015, postępując zgodnie z tutorialem znalezionym here. Mój projekt działa, ale chciałem dodać więcej tabel do bazy danych i utworzyć kilka relacji klucza obcego między nimi a istniejącymi tabelami. Dodałem model danych encji ADO.Net (Właściwości projektu> Dodaj> Nowa pozycja> Dane> Model danych jednostki encji ADO.Net> EF Designer z modelu danych) ze wszystkimi wybranymi tabelami. Używam (localdb) \ MSSQLLocalDB, który jest zainstalowany z Visual Studio.Brak tabeli z 'EF Designer z bazy danych' .edmx diagram

Moim zamiarem było utworzenie moich nowych tabel i relacji FK na diagramie .edmx, a następnie "Forward Engineer" zmodyfikowanego modelu z powrotem do bazy danych. Jednak tylko 5 z 6 tabel utworzonych przez szablon ASP.NET MVC zostało dodanych do tabeli. Tabela AspNetUserRoles nie została dodana.

Czy ktoś może wyjaśnić, dlaczego tabela nie została dodana i co powinienem zrobić, aby utworzyć nowe tabele i kluczowe relacje? Wolę pracować w środowisku graficznym, ponieważ nie jestem ekspertem od DB/SQL.

+0

Czy zdarzyło Ci się otworzyć dowolne bazy danych w Eksploratorze serwera w VS? – tshoemake

+1

Prawdopodobnie tabela z użytkownikiem i rolą jako identyfikatorem kluczy formularzy Ta tabela nie pojawiłaby się na diagramie, jeśli będzie widoczna tylko we właściwości nawigacji. Jeśli tabela jest utworzona z dwóch FK w celu utworzenia klucza głównego i żadnych innych właściwości, nie pojawi się jako Tabela w EF –

+0

@ Mark, Jest to tabela z 2 kluczami obcymi. Dlaczego EF ignoruje takie tabele? Jeśli ponownie skonstruuję DB z modelu, czy przywróci on tę tabelę? –

Odpowiedz

7

dla każdego, kto się w ten sposób:

Jeśli masz stolik wykonany z dwóch kluczy obcych łączone w celu utworzenia tabel klucza podstawowego i żadnych innych właściwości w tabeli Entity Framework nie doda tej tabeli do Modelu, mimo że istnieje w tle.

Nie potrzebujesz pośredniej tabeli Dołącz. EF doda właściwość Nawigacja.

W tym przypadku użyjesz czegoś takiego jak: (Obiekt użytkownika) .Roles.add (nowy obiekt userrole); Zapisz zmiany kontekstu, aby zaktualizować;

0

Nie wybrano AspNetUserRoles podczas początkowego generowania modelu. Użyj pól wyboru, aby wybrać żądane tabele.

Aby go dodać, kliknij projektant prawym przyciskiem myszy "Aktualizacja modelu z bazy danych ..." z menu kontekstowego. Pod pierwszą zakładką "Dodaj". rozwiń "Tabele", a następnie rozwiń menu "dbo" i wybierz "AspNetUserRoles", używając pola wyboru i innych tabel, których możesz potrzebować. Kliknij przycisk Zakończ, aby zaktualizować model i EDMX

+0

Myślałem, że być może przegapiłem wybór stołu i wypróbowałem to przed wysłaniem pytania do SO. Nie pociągnął za stół. –

+0

To jest to, co powiedziałem. Nie wybrałeś początkowo stołu. Wygląda jednak na to, że zamiast oznaczać to jako odpowiedź, raczej głosowałeś na moją odpowiedź. Jakieś powody głosowania w dół? –

+0

Nie poddałem się głosowaniu. Nie mam przedstawiciela do głosowania w sprawie komentarzy - nie, że bym to zrobił, gdybym to zrobił.Doceniam twoje poświęcenie czasu na odpowiedź, nawet jeśli nie było to przyczyną mojego problemu. To może pomóc komuś innemu. Mark Homer miał odpowiedź, która dotyczyła mojej sprawy. Niestety, nie mogłem go również głosować. –

1

Ef wymaga klucza podstawowego z tabeli. Jeśli podstawowy brak w tabeli niż EF zignoruje tę tabelę. Find details here

Powiązane problemy