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);
    }
}
È stato utile?

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; } o public 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top