Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 kwi 2025, o 04:14


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 26 paź 2016, o 12:54 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    Witam.
    Na początek zaznaczam, że jestem bardzo początkujący w temacie dlatego proszę o wyrozumiałość.
    Piszę programik z EF6 Code First. Mam Dwie klasy DictionaryMaster i DictionarySlave. Jak się można domyśleć są powiązane relacją 1+M. Ppotrzebuję ustawić konkretną moją nazwę pola obsługującego relacje. O co dokładnie chodzi wyjaśniam w dalszej części.

    Klasy wyglądają następująco
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Migracja tworzy mi następujący kod tworzący tabele
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jak widać w tabeli 'dictionaryslave' niejako od zaplecza zostało stworzone pole 'DictionaryMaster_ID' jako klucz obcy do obsługi relacji 1+M. Widać również że jego nazwa nie pasuje do przyjętej konwencji nazewnictwa kolumn w tabeli. Chciałbym je ustawić na 'DS_DMID'. Próbowałem zdefiniować kolejną właściwość w klasie DictionarySlave ale nie udało mi się jej podpiąć jako ForeinKey
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Mam inny zestaw klas z relacją M+N i poradziłem sobie z podobnym tematem następująco :
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    I w metodzie OnModelCreating coś takiego co załatwia mi zmianę nazwy tabeli jak również własne nazwy kolumn i gitara. Mniej więcej rozumiem co poniższe robi ale niestety nie potrafię poniższego zaimplementować w tabeli podrzędnej DictionarySlave w relacji 1+M.

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 paź 2016, o 13:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 maja 2014
    Posty: 1089
    Pomógł: 34

    Dawno temu bawilem sie EF - ale Tak na szybko rzuc okiem http://stackoverflow.com/a/11148834/2476347 uzywajac wlasnie tego podejscia powienenes osiagnac co potrzebujesz.

    Daj znac czy cos pomoglo a jak nie to postaram sie cos wiecej zrobic jak bede pozniej w domu ;)


    Autor postu otrzymał pochwałę

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 paź 2016, o 14:44 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    Czytałem wcześniej podany przez ciebie wpis ale chyba go nie zrozumiałem. Przeczytałem więc go jeszcze dwa razy ;-) i załapałem. Problemem było myślowe przejście z modelu relacyjne na model obiektowy i co się tam dzieje. Dzięki zadziałało podejście 1.2
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    no i migracja wygląda już tak jak chciałem
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jak będzie szło pobieranie danych to się niebawem okaże. Na razie dzięki za podpowiedź.

    Po walce z FluentAPI wyszło mi takie cość
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Tylko jak zmapować DictionaryMasterId na kolumnę DS_DMID
    Mogę zrobić tak ale to jest jakaś masakra.
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 paź 2016, o 09:36 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    Wczoraj było już chyba za późno na myślenie. Ostateczna wersja która spełnia wymagania (he, he sam sobie odpowiadam, ale może przyda się to innym czytającym):
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Daje to migrację dokłądnie taką o którą mi chodziło:

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    To samo z FluentAPI. Przy okazji. Są jakieś argumenty za/przeciw FluentAPI? Czy może to tylko kwestia indywidualnych upodobań, bo klepania nieco więcej niż przy atrybutach.

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 paź 2016, o 11:40 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    Zmagań ciąg dalszy. Wymyśliłem sobie, że w DictionarySlave para DictionaryMaster i DictSlaveKey będą stanowiły indeks unikalny. Czyli że w ramach klucza głównego klucze podrzędne muszą być unikalne natomiast klucze podrzędne mogą się powtarzać w różnych kluczach nadrzędnych i nie chodzi tu relację master to slave a o duble kluczy slave z różnymi DS_DMID.
    Z atrybutami wygląda to tak:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i daje to taką migrację :
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Czy da się index IX_DmWithKey zrobić we FluentAPI bez tworzenia dodatkowych pól w klasie DictionarySlave? Od biedy mógłby być to klucz główny. Choć jak widać powyżej nie musi.
    Oczywiście poniższe nie działa
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO