Mam obiekt bazowy, że nie chcę być odwzorowany w DB jako podmiot, chcę tylko właściwości mają zostać dodane do obiektu, który jest mapowany w DB:Dziedziczenie EF Code-First
niemapowany przedmiot (nie wiem czy to ma znaczenie ale baseobject jest w innym zespole):
public class BaseObject
{
public virtual string Prop1 { get; set; }
public virtual string Prop2 { get; set; }
}
Mapowany obiektu:
public class ChildObject : BaseObject
{
public virtual string Prop3 { get; set; }
public virtual string Prop4 { get; set; }
public virtual string Prop5 { get; set; }
}
Co jest zarejestrowany w DbContext
public DbSet<ChildObject> ChildObjects { get; set; }
Co chciałbym zobaczyć w dB
table:ChildObject
col:Prop1 (from BaseObject)
col:Prop2 (from BaseObject)
col:Prop3
col:Prop4
col:Prop5
Aby wznowić, co chcę zrobić, to mieć jedną tabelę w DB, który ma dziecko i właściwości bazowych.
Jest to błąd Jestem obecnie na:
typu „namespace.ChildObject” nie została odwzorowana. Sprawdź, czy typ nie zostało wyraźnie wyłączone przy użyciu metody lub danych NotMappedAttribute adnotacji Ignoruj. Sprawdź, czy typ został zdefiniowany jako klasa, nie jest prymitywny, zagnieżdżone lub ogólny, a nie odziedziczyć z EntityObject.
Kopałem, ale nie mogę tego zrobić.
Wszelkie pomysły?
EDIT:
@Kyle Trauberman ma rację, jednak z jakiegoś powodu nie wydaje się być problem z dziedziczenie z klasy bazowej w innym zespole. Po prostu to zrobiłem.
class BaseObjectClone : BaseObject { } /* BaseObject being in another assembly */
public class ChildObject : BaseObjectClone {
public virtual string Prop3 { get; set; }
public virtual string Prop4 { get; set; }
public virtual string Prop5 { get; set; }
}
A zatem nie chcesz, aby właściwości zdefiniowane w klasie bazowej były odwzorowane na bazę danych? A może chcesz je zmapować? Co widzisz teraz, a co chcesz zobaczyć? –
Przepraszam, może to być niejasne. Chodziło mi dont chcesz baseobject być odwzorowany jako inny podmiot, ale chcę, aby pokazać właściwości w obiekcie dziecięcej. –
udało mi się rozwiązać mój podobny przypadek z moją odpowiedź [tutaj] (https://stackoverflow.com/a/45762308/1718832) – vk5880