Konfigurowanie dziedziczenia za pomocą narzędzia Object Relational Designer
Projektant relacyjny obiektów (O/R Designer) obsługuje koncepcję dziedziczenia pojedynczej tabeli, ponieważ jest często implementowana w systemach relacyjnych. W dziedziczeniu z jedną tabelą istnieje pojedyncza tabela bazy danych zawierająca pola zarówno dla informacji nadrzędnych, jak i informacji podrzędnych. W przypadku danych relacyjnych kolumna dyskryminująca zawiera wartość określającą, do której klasy należy dowolny rekord.
Rozważmy na przykład tabelę zawierającą Persons
wszystkich zatrudnionych przez firmę. Niektórzy ludzie są pracownikami, a niektórzy są menedżerami. Tabela Persons
zawiera kolumnę o nazwie EmployeeType
zawierającą wartość 1 dla menedżerów i wartość 2 dla pracowników. Jest to kolumna dyskryminująca. W tym scenariuszu można utworzyć podklasę pracowników i wypełnić klasę tylko rekordami, które mają EmployeeType
wartość 2. Możesz również usunąć kolumny, które nie mają zastosowania z każdej z klas.
Tworzenie modelu obiektów korzystającego z dziedziczenia (i odpowiada danym relacyjnym) może być nieco mylące. Poniższa procedura przedstawia kroki wymagane do skonfigurowania dziedziczenia za pomocą projektanta O/R. Wykonanie ogólnych kroków bez odwoływania się do istniejącej tabeli i kolumn może być trudne, dlatego podano przewodnik, który korzysta z danych. Aby uzyskać szczegółowe instrukcje krok po kroku dotyczące konfigurowania dziedziczenia przy użyciu projektanta O/R, zobacz Przewodnik: tworzenie klas LINQ to SQL przy użyciu dziedziczenia z jedną tabelą (O/R Designer).
Aby utworzyć dziedziczone klasy danych
Otwórz projektanta O/R, dodając element LINQ to SQL Classes do istniejącego projektu Języka Visual Basic lub C#.
Przeciągnij tabelę, której chcesz użyć jako klasy bazowej do projektanta O/R.
Przeciągnij drugą kopię tabeli do projektanta O/R i zmień jego nazwę. Jest to klasa pochodna lub podklasa.
Kliknij pozycję Dziedziczenie na karcie Projektant relacyjny obiektu przybornika, a następnie wybierz podklasę (zmienioną nazwę tabeli) i połącz ją z klasą bazową.
Uwaga
Kliknij element Dziedziczenie w Przyborniku i zwolnij przycisk myszy, kliknij drugą kopię klasy utworzonej w kroku 3, a następnie wybierz pierwszą klasę utworzoną w kroku 2. Strzałka w wierszu dziedziczenia wskazuje pierwszą klasę.
W każdej klasie usuń wszystkie właściwości obiektu, które nie mają być wyświetlane i które nie są używane do skojarzeń. Jeśli próbujesz usunąć właściwości obiektu używane dla skojarzeń, wystąpi błąd:
The property <property name> cannot be deleted because it is participating in the association <association name>
.Uwaga
Ponieważ klasa pochodna dziedziczy właściwości zdefiniowane w swojej klasie bazowej, nie można zdefiniować tych samych kolumn w każdej klasie. (Kolumny są implementowane jako właściwości). Możesz włączyć tworzenie kolumn w klasie pochodnej, ustawiając modyfikator dziedziczenia we właściwości w klasie bazowej. Aby uzyskać więcej informacji, zobacz Podstawy dziedziczenia (Visual Basic).
Wybierz wiersz dziedziczenia w projektancie O/R.
W oknie Właściwości ustaw właściwość dyskryminującą na nazwę kolumny, która rozróżnia rekordy w klasach.
Ustaw właściwość Wartość dyskryminująca klasy pochodnej na wartość w bazie danych, która wyznacza rekord jako typ dziedziczony. (Jest to wartość przechowywana w kolumnie dyskryminującej i jest używana do wyznaczenia dziedziczonej klasy).
Ustaw właściwość Wartość dyskryminująca klasy bazowej na wartość, która wyznacza rekord jako typ podstawowy. (Jest to wartość przechowywana w kolumnie dyskryminującej i jest używana do wyznaczenia klasy bazowej).
Opcjonalnie można również ustawić właściwość Default dziedziczenia, aby wyznaczyć typ w hierarchii dziedziczenia, która jest używana podczas ładowania wierszy, które nie pasują do żadnego zdefiniowanego kodu dziedziczenia. Innymi słowy, jeśli rekord ma wartość w swojej kolumnie dyskryminującej, która nie pasuje do wartości we właściwościach wartości dyskryminującej klasy pochodnej lub wartości dyskryminującej klasy bazowej, rekord jest ładowany do typu wyznaczonego jako Wartość domyślna dziedziczenia.
Powiązana zawartość
- LINQ to SQL tools in Visual Studio
- Przewodnik: tworzenie klas LINQ to SQL (O-R Designer)
- Uzyskiwanie dostępu do danych w programie Visual Studio
- LINQ to SQL
- Przewodnik: tworzenie klas LINQ to SQL przy użyciu dziedziczenia z jedną tabelą (O/R Designer)
- Podstawy dziedziczenia (Visual Basic)
- Dziedziczenie