Due associazione uno a molti su un LinkTable
-
25-10-2019 - |
Domanda
Ho un LinkTable nome: BlogsBlogPosts che si riferisce altre due tabelle denominate: Blog e blogposts insieme, voglio la tabella di collegamento di apparire nella lista delle entità e ci saranno due uno a molti relazioni definite sulla am linktable correggo per definire in questo modo:?
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);
}
}
Soluzione
Sì. L'unica domanda che rimane per me è: Che cosa circa la proprietà chiave primaria della BlogsBlogPost
? Due opzioni:
-
O si dispone di una proprietà chiave distinta come
public int BlogsBlogPostID { get; set; }
opublic int ID { get; set; }
in questa entità. In questo caso le combinazioni di (BlogID
,BlogPostID
) non devono essere unico. -
O avete una chiave composito costituito da (
BlogID
,BlogPostID
). Si dovrà marcare questo con l'annotazione[Key]
o definire in API Fluent:this.HasKey(bbp => new { bbp.BlogID, bbp.BlogPostID });
Ora combinazioni di (
BlogID
,BlogPostID
) devono essere univoci. Questo è più di un " molti-a-molti con dati aggiuntivi nella tabella di collegamento " tipo di rapporto.
Entrambi i modelli sono possibili. Quale utilizzare dipende dalle vostre esigenze aziendali.