Deux association un à plusieurs sur un LinkTable
-
25-10-2019 - |
Question
J'ai un LinkTable nommé: BlogsBlogPosts qui se rapporte deux autres tables nommées: Blogs et BlogPosts ensemble, je veux la table de lien apparaisse dans la liste des entités et il y aura deux un à plusieurs relations définies à l'am linktable je raison de définir comme ceci:
public class BlogsBlogPostConfiguration : EntityTypeConfiguration<BlogsBlogPost>
{
public BlogsBlogPostConfiguration()
{
this.HasRequired(bb => bb.Blog)
.WithMany(b => b.BlogsBlogPosts)
.HasForeignKey(bb =>bb.BlogID);
this.HasRequired(bb => bb.BlogPost)
.WithMany(bp => bp.BlogsBlogPosts)
.HasForeignKey(bb => bb.BlogPostID);
}
}
La solution
Oui. La seule question qui reste pour moi: Qu'en est-il la propriété de clé primaire BlogsBlogPost
? Deux options:
-
Vous avez soit une propriété clé distincte comme
public int BlogsBlogPostID { get; set; }
oupublic int ID { get; set; }
dans cette entité. Dans ce cas, des combinaisons de (BlogID
,BlogPostID
) ne doit pas être unique. -
Ou vous avez une clé composite comprenant (
BlogID
,BlogPostID
). Vous devrez marquer cela avec l'annotation[Key]
ou définir API Courant:this.HasKey(bbp => new { bbp.BlogID, bbp.BlogPostID });
(combinaisons de
BlogID
,BlogPostID
) doivent être uniques. Ceci est plus d'un « plusieurs à plusieurs avec des données supplémentaires dans le tableau de lien » type de relation.
Les deux modèles sont possibles. Ce qui à utiliser dépend de vos besoins.