Pregunta

Tengo un enlace llamado: BlogSBlogPosts que relaciona otras dos tablas nombradas: blogs y postes de blog juntos, quiero que la tabla de enlaces aparezca en la lista de entidades y habrá dos de una a muchas relaciones definidas en el enlace, estoy correcto para definirla para definirla para definirla ¿como esto?:

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);
    }
}
¿Fue útil?

Solución

Sí. La única pregunta que me queda es: ¿qué pasa con la propiedad clave principal de BlogsBlogPost? Dos opciones:

  • Tiene una propiedad clave distinta como public int BlogsBlogPostID { get; set; } o public int ID { get; set; } en esta entidad. En este caso, combinaciones de (BlogID, BlogPostID) No tienes que ser único.

  • O tiene una tecla compuesta que consiste en (BlogID, BlogPostID). Tendrías que marcar esto con el [Key] anotación o definirla en API fluida:

    this.HasKey(bbp => new { bbp.BlogID, bbp.BlogPostID });
    

    Ahora combinaciones de (BlogID, BlogPostID) debe ser único. Esto es más un "muchos a muchos con datos adicionales en la tabla de enlaces" Tipo de relación.

Ambos modelos son posibles. Que para usar depende de las necesidades de su negocio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top