Wir möchten eine optionale Eins-zu-Eins-Beziehung mit Entity Framework Code First verwenden. Wir haben zwei Einheiten.
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; }
}
PIIUserkann eine haben LoyaltyUserDetail, LoyaltyUserDetailmuss aber eine haben PIIUser. Wir haben diese fließenden Ansatztechniken ausprobiert.
modelBuilder.Entity<PIIUser>()
.HasOptional(t => t.LoyaltyUserDetail)
.WithOptionalPrincipal(t => t.PIIUser)
.WillCascadeOnDelete(true);
Dieser Ansatz hat keinen LoyaltyUserDetailIdFremdschlüssel in der PIIUsersTabelle erstellt.
Danach haben wir den folgenden Code ausprobiert.
modelBuilder.Entity<LoyaltyUserDetail>()
.HasRequired(t => t.PIIUser)
.WithRequiredDependent(t => t.LoyaltyUserDetail);
Diesmal hat EF jedoch keine Fremdschlüssel in diesen beiden Tabellen erstellt.
Haben Sie Ideen für dieses Problem? Wie können wir eine eins zu eins optionale Beziehung mit der fließenden API des Entity Frameworks erstellen?