Dos uno a muchos asociación en un enlace
-
25-10-2019 - |
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);
}
}
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; }
opublic 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.