8

Czasami struktura obiektu generuje okropne nazwy właściwości nawigacyjnych. Korzystając z pierwszego podejścia do bazy danych, jaki jest najlepszy sposób, aby to naprawić?Zmiana właściwości nawigacji

Jestem w stanie edytować szablony t4 zgodnie z moimi upodobaniami, ale jak mam powiązać te zmodyfikowane nazwy z rzeczywistymi relacjami? Czy powinienem napisać skrypt, aby zmodyfikować plik edmx? Oczywiście, zrobienie tego ręcznie nie jest opcją.

+0

Brak edmx w EF5. Czy mówisz o EF4? – zsong

+0

@sza, to dziwne, twierdzi, że jest wersją 5 we właściwościach odniesienia. To, co faktycznie zrobiłem, to "Model danych jednostki Ento.NET". –

+0

Myślę, że ten wątek zawiera bardziej szczegółowe wyjaśnienie, co należy zmienić w szablonach EF 5.x T4, aby to osiągnąć. http://stackoverflow.com/questions/12937193/improve-navigation-property-names-when-reverse-engineering-a-database – Bostrong

Odpowiedz

1

Tak, możesz. W większości przypadków wystarczy zmienić nazwę NavPr z projektanta modelu EF i zapisać model. Następnie EF zmienia nazwę NavPr w twoich klasach encji DbContext.tt i nie powoduje żadnych problemów.

Jeśli masz problemy z nazwą ralacji, kliknij prawym przyciskiem myszy nazwę o zmienionej nazwie NavPr i wybierz właściwości. Następnie zmień jego własność Association na rzeczywistą relację w bazie danych.

Jeśli nie widzisz tam relatywnej nazwy relacji, usuń tę encję i wszystkie inne jednostki, które mają z nią powiązanie, kliknij projektanta modelu prawym przyciskiem myszy i wybierz opcję Update model from database. Następnie zmień nazwę tego paskudnego NavPr i zapisz model.

+3

Nie chcę tego robić w projektancie modeli. Często jest na to zbyt wiele tabel. Ponadto, jeśli kiedykolwiek pojawi się potrzeba wygenerowania nowego modelu, wszystkie zmiany zostaną utracone. To, co chciałbym, to sposób, by powiedzieć EF, jakie konwencje nazewnicze mają używać. –

+0

Po prostu można usunąć konwencję nazewnictwa EF przez nadpisanie 'OnModelCreating' w DbContext, i robiąc to, musisz powiedzieć wszystko na temat nazywania właściwości, kluczy obcych itp. Do EF ...! Która droga jest prostsza ?! – AminSaghi

+2

'OnModelCreating' jest tylko dla kodu First, czyż nie? Potrzebuję rozwiązania przy użyciu bazy danych First. –

Powiązane problemy