2014-09-25 12 views
5

Podczas tworzenia nowego modelu danych encji z istniejącej bazy danych przy użyciu kodu najpierw z podejścia bazy danych można bezpośrednio określić, które tabele mają zostać uwzględnione w modelu. Podzbiór (lub wszystkie) tabele mogą być wybrane w kreatorze Visual Studio:Jak dodać dodatkowe tabele do istniejącego kodu najpierw z modelu EF bazy danych?

EF Data Model Wizard

W tym przykładzie Category i Product klasy zostanie utworzony wraz z DbContext pochodzącego klasy kontekstowego. Jeśli później chcę dodać dodatkowe tabele do tego samego modelu, czy istnieje prosty sposób dodawania ich, tj. Bez konieczności ręcznego tworzenia klas?

Np. Początkowo moja DbContext klasa będzie zawierać:

public virtual DbSet<Category> Categories { get; set; } 
public virtual DbSet<Product> Products { get; set; } 

Załóżmy teraz, ja też chcę to Employee stół tak, że klasa DbContext zostanie zaktualizowana:

public virtual DbSet<Category> Categories { get; set; } 
public virtual DbSet<Product> Products { get; set; } 
public virtual DbSet<Employee> Employees { get; set; } 

menu kontekstowe VS nie wydają się dostarczać ta opcja, ale może czegoś brakuje. Czy istnieje sposób na przywrócenie kreatora, aby móc wybrać dodatkowe tabele?

Jednym z rozwiązań jest posiadanie oddzielnego pustego projektu, w którym po prostu tworzysz nowy model, a następnie kopiujesz/wklejasz nowe klasy, ale jestem ciekawy, czy istnieje szybszy sposób.

Odpowiedz

2

Nie, nie ma sposobu, aby to zrobić. Musisz uruchomić kreatora ponownie i wygenerować pożądane klasy.

+0

Dziękuję. Czy wiesz, czy istnieje jakiś konkretny powód techniczny lub projektowy? Wydaje mi się, że wdrożenie czegoś takiego powinno być całkiem proste, więc jest trochę dziwne, że nie ma go w VS. – w128

+0

Myślę, że zespół nigdy się do tego nie zbliżył. Na czym polega problem polegający na ponownym generowaniu plików? Nie widzę dużej różnicy w tym przepływie pracy i o co prosisz ... – ErikEJ

+0

Problem (o którym początkowo nie wspomniałem) polega na tym, że zmieniam niektóre domyślne nazwy (np. Nazwa tabeli w moim konkretnym przypadku może być danymi klienta) gdy chcę, aby klasa nosiła nazwę CustomerData) i zapewniła atrybuty "Tabeli", tj. nieznacznie zmieniłem wygenerowany kod i odtworzenie całej rzeczy nadpisało to wszystko. – w128

Powiązane problemy