Oba mapowania stworzy dokładnie tego samego schematu bazy danych z nie-pustych klucz obcy SomethingId
i ograniczenie referencyjne między dwiema powiązanymi tabelami.
Pierwsze odwzorowanie z MapKey
jest używane, gdy nie chcesz, aby klucz obcy był własnością w klasie modelu. Typ stowarzyszenia w tym przypadku nosi nazwę Niezależne stowarzyszenie. Zastosowałbyś drugie mapowanie z HasForeignKey
, gdy klucz obcy jest właściwością w modelu. Ten typ nazywa się Foreign Key Association.
W wielu scenariuszach łatwiej jest pracować z obcymi kluczowymi stowarzyszeniami, ale wiele osób uważa za mniej czyste posiadanie artefaktu relacyjnego (obcego klucza) w świecie obiektów i dlatego woli niezależne stowarzyszenia.
Oto niektóre wzmianki o tych dwóch rodzajów związków i ich wady i zalety:
„Wiele osób uważa, że mapowanie obiektowo-relacyjne narzędzie ma za zadanie rozwiązać niedopasowanie impedancji obiektowo-relacyjnej, zamiast zmuszać lub nawet zachęcać do tego, aby model obiektu wyglądał tak, jakby był konkretnie opowiadał o tym, jak dane są przechowywane ". Tam naprawiłem to dla ciebie. –