2012-12-20 16 views
6

Próbuję najpierw zastosować podejście bazodanowe, tworząc model danych jednostki podmiotu ADO.NET za pomocą kreatora z bazą danych Adventureworks2012.Kreator modelu danych encji nie tworzy tabel w pliku EDMX

Testowanie połączenia DB działa, a ciąg połączenia jest dodawany do app.config.

Wybieram wszystkie tabele z wyjątkiem tych oznaczonych jako (dbo) AWBuildVersion, DatabaseLog i ErrorLog.

Po zakończeniu pracy kreatora plik .edmx jest pusty, a jeśli przeglądam plik w widoku XML, oznacza to, że EntityContainer jest pusty.

Po utworzeniu modelu zwraca ten błąd w oknie output:

Nie można wygenerować model ze względu na następującym wyjątkiem: „Na AdventureWorks2012.Production.Document tabela odwołuje się związek, ale nie można go znaleźć.

używam VS 2010 & .NET Framework 4.0

Odpowiedz

3

Wydaje się, że Entity Framework nie wie, jak radzić sobie z typami danych jak hierarchyid ustawiony na polu tabeli. Usunąłem tabelę Production.Document dla listy podmiotów, aby uwzględnić rozwiązanie mojego problemu.

Należy również zauważyć, że poniższe odniesienie dotyczy Adventureworks 2008R2 z wersją EF 1.0 z Code Plex SQL Sever, a ja korzystam z Adventureworks 2012 z tej samej witryny CodePlex, używając wersji EF 4.4.

referencyjny: http://msftdbprodsamples.codeplex.com/wikipage?title=AW2008Details

Uwaga: EF 1.0 Zagadnienia kompatybilności

Zespół Entity Framework chciałby nam poinformować, że AdventureWorks2008 jest trochę przed krzywej w kategoriach Katmai wyposażony używa . Niektóre typy danych w AdventureWorks2008 (takie jak hierarchyid i geometria) nie są obsługiwane w strukturze encji. Rozwiązaniem jest wykluczenie tabel, takich jak Production.Document z twojego modelu, jeśli to możliwe, ponieważ obecnie nie ma obsługi typów danych typu hierarchyid w Entity Framework 1.0. Niestety narzędzie Entity Framework, które aktualizuje model z bazy danych, pobiera tabele, takie jak Production.Document, nawet jeśli zostały one wyraźnie wykluczone podczas tworzenia modelu, więc użycie tej funkcji w AdventureWorks2008R2 nie jest obecnie obsługiwane. Czekamy na kolejne wydanie Entity Framework, które ma pełną obsługę typów SQL Server 2008. Ostatnio edytowane 25 maja 2010 o 2:22 pm przez bonniefe, wersja 17

0

Istnieje sposób, aby ominąć ten IF starasz się nauczyć z tego przykładu i nie robi nic sensownego. Usunąłem obce klucze do niewłaściwej tabeli i udało mi się z powodzeniem uzyskać

0

Odznacz pola wyboru [Zezwalaj na wartości zerowe] (w projekcie tabeli) dla wszystkich kluczy obcych nie utworzonych tabel (tabele nie zostały przekonwertowane do modelu).

enter image description here

Następnie można aktualizować swój model do pobierania tych tabel, wykonując następujące czynności: -

Krok 1 - kliknij prawym pewne gdzie w projektowaniu plik .EDMX (tj Model1.EDMX [Diagram1 .] Krok 2 - następnie z menu kontekstowego wybrać model z/update Bazy .... Krok 3 - wybierz „Dodaj” Krok 4 - następnie wydać „tabele” pól wyboru i wybierz żądane tabele (tabele nie utworzony po raz pierwszy) Krok 5 - następnie kliknij przycisk Zakończ .. Krok 6 - Zapisz rozwiązanie i mam nadzieję, że wszystko będzie w porządku.

enter image description here

Uwaga: Używam Visual Studio 2013.

powodzenia.

Powiązane problemy