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; }
}
PIIUser
kann eine haben LoyaltyUserDetail
, LoyaltyUserDetail
muss 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 LoyaltyUserDetailId
Fremdschlüssel in der PIIUsers
Tabelle 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?