Próbuję użyć dwóch różnych podmiotów przeciwko tej samej tabeli. Celem posiadania dwóch jednostek jest ograniczenie ilości atrybutów w jednym z nich, ponieważ na jednej z form edycji powinna istnieć możliwość zmiany tylko kilku atrybutów.Jak zmapować wiele jednostek do jednej tabeli?
Aby uniknąć ukrywania atrybutów nieedytowalnych w celu zachowania ich wartości, pomyślałem, że dobrym pomysłem będzie posiadanie osobnej jednostki z tylko częścią atrybutów.
Więc mam jedną całość z wszystkimi atrybutami i jedną z niektórymi atrybutami. Problemem jest to, że otrzymuję ten wyjątek:
`typów jednostki ApplicationMapping 'i„ApplicationMappingFull” nie mogą dzielić stół„ApplicationMapping”, ponieważ nie są one w samej hierarchii typu lub nie posiada ważnej jednego na jeden klucz obcy związek z pasującymi kluczami podstawowymi między nimi.
Klasy config jednostka wyglądać następująco:
class ApplicationMappingFullConfiguration : EntityTypeConfiguration<ApplicationMappingFull>
{
public ApplicationMappingFullConfiguration()
{
ToTable("ApplicationMapping");
HasKey(p => p.Id);
}
}
class ApplicationMappingConfiguration : EntityTypeConfiguration<ApplicationMapping>
{
public ApplicationMappingConfiguration()
{
ToTable("ApplicationMapping");
HasKey(p => p.Id);
}
}
Jak mogę osiągnąć to, co mam zrobić? Czy istnieje lepszy/prostszy sposób robienia tego?
Dzięki!
Czy "ApplicationMappingFull" dziedziczy po 'ApplicationMapping'? Czy możesz dodać kod do tych lekcji na swoje pytanie? –
@HenkMollema Nie, nie ma dziedzictwa między jednostkami. Są to oddzielne jednostki, jedna ma wszystkie pola z tabeli, druga ma tylko kilka pól. – Stian
Wystarczy użyć dwóch osobnych modeli widoku, które jednocześnie odwzorowują na tę samą jednostkę. – dotjoe