entity-framework - foreign - many to many entity framework fluent api
MapKey vs HasForeignKey Difference-Fluent Api (1)
Ambas asignaciones crearán exactamente el mismo esquema de base de datos con una clave externa no nulable SomethingId
y una restricción referencial entre las dos tablas relacionadas.
La primera asignación con MapKey
se usa cuando no desea tener la clave externa como propiedad en su clase de modelo. El tipo de asociación en este caso se llama Asociación Independiente . HasForeignKey
aplicar la segunda asignación con HasForeignKey
cuando la clave foránea es una propiedad del modelo. Este tipo se llama Foreign Key Association .
En muchos escenarios, es más fácil trabajar con asociaciones de claves foráneas, pero muchas personas consideran que es menos limpio tener un artefacto relacional (una clave externa) en el mundo de los objetos y, por lo tanto, prefieren las asociaciones independientes.
Aquí hay algunas referencias sobre los dos tipos de asociaciones y sus ventajas y desventajas:
¿Cuál es realmente la diferencia entre:
this.HasRequired(a => a.Something)
.WithMany()
.Map(a => a.MapKey("SomethingId"));
y
this.HasRequired(a => a.Something)
.WithMany()
.HasForeignKey(a => a.SomethingId);