J'utilise Entity Framework 6.1 comme ORM. Je souhaite configurer une relation un-à-plusieurs entre les entités Rule
et Code
. Je veux le faire avec une classe wrapper intermédiaire appelée RuleParameters
. En outre, je ne souhaite pas que cet objet wrapper soit représenté dans la base de données.Comment configurer une relation un-à-plusieurs avec la classe wrapper intermédiaire dans Entity Framework
Est-ce possible avec EF? Si oui, quelle annotation/configuration d'api fluide suis-je absent?
Voici ma configuration. Je montre des annotations ici sur api fluide pour être concis.
public class Rule
{
public Rule()
{
Parameters = new RuleParameters();
}
public int RuleId { get; set; }
[NotMapped]
public RuleParameters Parameters { get; set; }
}
public class RuleParameters
{
public virtual IList<Code> Codes;
}
public Code
{
public int CodeId { get; set; }
public int RuleId { get; set; }
[ForeignKey("RuleId")]
public Rule Rule { get; set; }
}
problèmes que j'ai rencontrés:
RuleParameters
est pas une entité si je veux naturellement de le traiter comme un type complexe, mais ne peut pas en raison de l'associationCodes
(1/2)(2/2).- Cacher
RuleParameters
wrapper de EF tout en configurant simultanément la relation un-à-plusieurs semble contradictoire.
@GertArnold '[NotMapped]' sert à masquer 'RuleParameters'. Il semble que cela fasse aussi cacher toute sorte de relations que je veux configurer entre les entités, donc la contradiction :( – Mantzel
Eh bien, vous ne pouvez pas cacher 'RuleParameters', vous devez le mapper comme un type complexe, soit par le API, ou par une annotation de données –