J'ai un modèle de domaine spécifiant les interfaces ou mon domaine et j'utilise DI pour l'associer à une implémentation de référentiel d'infrastructure 4 framework. Dans mon domaine, je donne les résultats suivants:Problèmes d'héritage d'interface dans une relation un-à-plusieurs dans Entity Framework
public interface IInboundGateway : IGateway
{
ICollection<IInboundNumber> InboundNumbers { get; set; }
}
J'ai alors mon modèle-cadre de l'entité qui a généré la classe InboundGateway:
public partial class InboundGateway : EntityObject
{
public EntityCollection<InboundNumber> InboundNumbers { get; set; }
}
Afin de mettre en œuvre l'inteface IInboundGateway j'ai créé une classe InboundGateway partielle.
public partial class InboundGateway : IInboundGateway
{
}
Eventhough EntityCollection <> implémente ICollection <> et InboundNumber implémente IInboundNumber j'obtiens une erreur de déclaration que InboundGateway ne met pas en œuvre IInboundGateway.InboundNumbers d'interface, car InboundGateway.InboundNumbers n'a pas le type de retour correspondant ICollection<IInboundNumber>
Je suis assez certain que c'est mental car EntityCollection implémente ICollection et InboundNumber implémente IInboundNumber.
Toute aide serait massivement appréciée merci.
Certes, compte tenu du fait que InboundNumbers est également partialed héritant IInboundNumber signifie que le compilateur peut voir qui hérite InboundNumber IInboundNumber? Non? –
Non, comme je l'ai dit même si InboundNumbers implémente IInboundNumber mais vous ne pouvez pas retourner ICollection où ICollection est requis. S'il vous plaît noter que * Covariance * ne fonctionne pas dans les génériques ce qui signifie que la liste n'est pas un sous-type de la liste . –