Ho il seguente modello:L'abstract tipo X non ha discendenti mappati e quindi non può essere mappato
public abstract class AbstractBase { }
public abstract class AbstractBase<T> : AbstractBase where T : SomeOtherTypeBase
{
T MyProp {get; set;}
}
public class Concrete1 : AbstractBase<OtherTypeSpecializationFor1> { }
public class Concrete2 : AbstractBase<OtherTypeSpecializationFor2> { }
Ma Entity Framework mi dà l'errore:
Il tipo AbstractBase astratto non ha mappato discendenti e quindi non possono essere mappati
A mio parere ciò non dovrebbe accadere poiché AbstractBase eredita direttamente da AbstractBase e dalle classi Concrete1/2 che sono concreti ereditati da GenericAbstractBase. Cosa sta succedendo qui ?
Inoltre, solo per curiosità, mi chiedo se la proprietà di tipo T in GenericAbstractBase venga mantenuta da EF, nel caso in cui qualcuno che passa abbia la risposta in mente.
Update 1
qualcuno può confermare che questo è supportato da EF? Ho visto questo post e secondo la risposta di Rowan questo dovrebbe essere il caso. Grazie
Update 2 stesso problema quando la classe base generica non è astratta.
sono '' Concrete1' e Concrete2' effettivamente mappato nella configurazione? –
Sì, ho DbSets per questi tipi e anch'io li ho registrati esplicitamente in OnModelCreating – reddy
Penso che questo potrebbe essere un duplicato di http://stackoverflow.com/questions/12538004/entity-framework-5-the-abstract -type-x-has-no-mapped-descendents-and-so-cann –