/ / Entity Framework: Model nie odzwierciedla DB - entity-framework

Entity Framework: Model nie odzwierciedla DB - entity-framework

Prawdopodobnie myślę o tym wszystko źle, ale mam następujące tabele db:

tekst alternatywny

Po uruchomieniu Kreatora EF w VS2008 otrzymuję następujący model:

tekst alternatywny

Zauważysz, że w modelu EF pokazuje, żePodmiot nie ma pola dla EntityTypeID lub EntityStatusId. Zamiast tego pokazuje to jako właściwość nawigacji, więc wydaje się, że pole nie jest adresowalne, gdy tworzę egzemplarz Entity (przepraszam za błąd w terminologii: Entity to Table / Class w mojej przestrzeni nazw nie w przestrzeni nazw EF). Jak mogę przypisać EntityTypeID i StatusTypeID podczas tworzenia instancji?

Odpowiedzi:

3 dla odpowiedzi № 1

Tak, struktura encji ukrywa właściwości identyfikatora klucza obcego i zamiast tego wyświetla właściwości nawigacji. Jest długa dyskusja o tym, dlaczego tak się dzieje, tutaj. Typowym sposobem przypisania odniesienia do innej jednostki jest przypisanie instancji jednostki, a nie wartości identyfikatora klucza obcego, na przykład:

var foo = new Entity();
var status = (from .... select ...).FirstOrDefault();
foo.StatusCodes = status;

Jednak można przypisać ID klucza obcego bezpośrednio, jeśli wiesz, co to jest:

foo.StatusCodesReference = new EntityKey(
"MyEntityContextName.StatusCodesEntitySetName", "StatusCodeId", value);

Oczywiście, zastąp prawdziwe wartości w powyższym.