Una a una relación opcional usando Entity Framework Fluent API
Queremos usar una relación de uno a uno usando el código de Entity Framework primero. Tenemos dos entidades.
public class PIIUser
{
public int Id { get; set; }
public int? LoyaltyUserDetailId { get; set; }
public LoyaltyUserDetail LoyaltyUserDetail { get; set; }
}
public class LoyaltyUserDetail
{
public int Id { get; set; }
public double? AvailablePoints { get; set; }
public int PIIUserId { get; set; }
public PIIUser PIIUser { get; set; }
}
PIIUser
puede tener unLoyaltyUserDetail
peroLoyaltyUserDetail
debe tener unPIIUser
. Probamos estas técnicas de aproximación fluida.
modelBuilder.Entity<PIIUser>()
.HasOptional(t => t.LoyaltyUserDetail)
.WithOptionalPrincipal(t => t.PIIUser)
.WillCascadeOnDelete(true);
Este enfoque no creóLoyaltyUserDetailId
clave externa enPIIUsers
mesa.
Después de eso probamos el siguiente código.
modelBuilder.Entity<LoyaltyUserDetail>()
.HasRequired(t => t.PIIUser)
.WithRequiredDependent(t => t.LoyaltyUserDetail);
Pero esta vez, EF no creó ninguna clave externa en estas 2 tablas.
¿Tienes alguna idea para este problema? ¿Cómo podemos crear una relación de uno a uno utilizando el framework de entidad con fluidez api?