Opcjonalna relacja jeden do jednego przy użyciu Entity Framework Fluent API

Chcemy użyć opcjonalnej relacji jeden do jednego przy użyciu kodu Entity Framework Code First. Mamy dwa podmioty.

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 może miećLoyaltyUserDetail aleLoyaltyUserDetail musi miećPIIUser. Próbowaliśmy tych technik płynnego podejścia.

modelBuilder.Entity<PIIUser>()
            .HasOptional(t => t.LoyaltyUserDetail)
            .WithOptionalPrincipal(t => t.PIIUser)
            .WillCascadeOnDelete(true);

Takie podejście nie powstałoLoyaltyUserDetailId klucz zagraniczny wPIIUsers stół.

Następnie wypróbowaliśmy następujący kod.

modelBuilder.Entity<LoyaltyUserDetail>()
            .HasRequired(t => t.PIIUser)
            .WithRequiredDependent(t => t.LoyaltyUserDetail);

Ale tym razem EF nie utworzył żadnych kluczy obcych w tych 2 tabelach.

Czy masz jakieś pomysły na ten problem? W jaki sposób możemy utworzyć jeden do jednego opcjonalnego związku, używając struktury encji płynnie api?

questionAnswers(6)

yourAnswerToTheQuestion