7

Chciałbym użyć Entity Framework Code-first dla nowego projektu. Postanowiłem więc przeprowadzić pewne badania i zbudować demo, aby zobaczyć, jak sobie radzi. Przez, mam poważny problem lub prawdopodobnie coś, co nie jest dla mnie jasne, które obejmują sposób, w jaki kod encji kodu - najpierw mapuje do encji i projekt oparty na domenie.W jaki sposób odwzorowanie kodu Entity Framework-First odzwierciedla projekt oparty na domenie?

Podczas tworzenia aplikacji definiujemy jednostki domeny. (Definiujemy agregowane pierwiastki i tworzymy dla nich repozytoria w zależności od sytuacji biznesowej, od tego, co usłyszałem).

To dobrze, ale mapowanie Entity Framework Code-First wydaje się działać jak relacyjny sposób między jednostkami. Jak więc oba mogą współistnieć?

Jako przykład (Myślenie w domenie napędzane stronie projektu):

UrzędowymzawieraJournalEntyzawierazadania, problemy, notatki

Italic słowa podmioty. W pewnym sensie po analizie powiedziałbym, że dziennik jest zbiorczym korzeniem agregatu czasopisma i czasopisma, ponieważ jest to kompozycja bezpośrednia. Każde zadanie zawiera wartość godzinową, aby wiedzieć, ile godzin zajęło ukończenie zadań, aby można było obliczyć łączną liczbę godzin, a także wysokość wynagrodzenia z tego tytułu. Dziennik ma właściwość stawki godzinowej.

Pozostałe podmioty są zbiorczym katalogiem głównym i mogą zawierać odniesienie do dziennika, dzięki czemu wiemy, gdzie znajdują się zadania, notatki i problemy.

Ale problem pojawia się tutaj .. w jaki sposób odwzorowanie kodu Entity Framework-First może to odzwierciedlić? Z intuicyjnego widoku można by powiedzieć, że dziennik zawiera wpis do dziennika, a dziennik zawiera notatki, problemy i zadania. Ale z widoku DDD prawdopodobnie tak nie jest. Popraw mnie, jeśli się mylę, ale praca z kodem działa jak relacyjna baza danych.

Więc w jaki sposób zmapujemy powyższy przykład w kodzie?

Wielkie dzięki.

Odpowiedz

2


Myślę, że nie jest źle, jeśli każda jednostka domeny ma odpowiednią tabelę w bazie danych. Nie oznacza to, że jest to struktura relacyjna, ponieważ obiekt Journal posiada właściwość JournalEntity (w strukturze relacyjnej journalEntity ma właśnie właściwość JournalID). Ponadto możliwe jest mapowanie hierarchii obiektów do jednej tabeli i tworzenie złożonych typów w mapowaniach. Oznacza to, że możesz mieć bardziej złożone scenariusze odwzorowania, a następnie klasę na tabelę.

Oto ScottGu wpis na blogu na ten temat.

Powiązane problemy