Je crée une application avec de nombreux objets différents (tables), dont beaucoup ont besoin d'avoir une relation un-à-plusieurs un objet "Attribute". Par exemple, je pourrais avoir cinq objets différents - A, B, C, D, E - et chacun d'eux doit avoir une propriété Attributes - A.Attributes, B.Attributes, etc.Entity Framework Code Première configuration avec plusieurs relations un-à-plusieurs pointant vers une seule table
Ma question est, comment serait le meilleur moyen de structurer cela dans EF Code First? Cette classe d'attribut peut finir par avoir 15-20 classes différentes qui ont une relation avec elle.
Actuellement, une configuration pour l'un des « parents » des classes ressemble à ceci:
HasMany(rdp => rdp.Attributes)
.WithOptional()
.WillCascadeOnDelete();
Cependant, cela va créer une colonne de clé étrangère sur la table d'attributs (par exemple, « A_Id », « B_Id » , etc). Donc, si j'ai 20 classes différentes avec des attributs, la table Attribute aura 20 clés étrangères différentes.
Existe-t-il une meilleure façon de structurer cela?
Serait-il raisonnable de faire des attributs un [ComplexType] (http://msdn.microsoft.com/en-us/data/jj591583.aspx)? –
@JeremyCook: Un type complexe, d'après ce que je sais, n'est bon que pour les relations one-to-one. Chaque classe parente (A, B, C, etc.) peut avoir zéro, un ou plusieurs attributs, donc je ne pense pas qu'un type complexe puisse fonctionner. – Amberite