c# - tipos - restricciones foreign key
En qué escenarios necesito claves externas Y propiedades de navegación en el marco de la entidad (1)
Mi clase de orden tiene:
public int CustomerId { get; set; }
public Customer Customer { get; set; }
¿De verdad necesito ambas propiedades para que funcione una relación?
No estoy usando entidades desconectadas, estoy usando el primer enfoque de código.
De acuerdo con el libro de Julia Lerman: Framework de la Entidad de Programación: DbContext , la diferencia radica en la dificultad de actualizar la propiedad de navegación. En la página 85, sugiere que "si hay algo que puede hacer para facilitarle la vida en los escenarios N-Tier, es para exponer las propiedades clave externas para las relaciones en su modelo". El libro incluye muestras para ambos escenarios.
La razón es que incluir una propiedad de clave externa le dice a Entity Framework que use Foreign Key Association, que es más simple que usar la llamada Asociación Independiente cuando necesita actualizar la relación, es decir, cambiar el orden de un cliente a otro en su ejemplo . Con la asociación de clave externa, todo lo que necesita hacer es cambiar el Id. De cliente. Sin la clave externa CustomerId, necesita más pasos. La asociación independiente usa el ObjectStateManager que se explica primero. ¿Asociaciones independientes vs. asociaciones de claves extranjeras? ObjectStateManager es complejo y ni siquiera está expuesto desde DbContext API.