Необязательное отношение один к одному с использованием Entity Framework Fluent API

Мы хотим использовать необязательные отношения один-на-один, используя Entity Framework Code First. У нас есть две организации.

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 может иметьLoyaltyUserDetail ноLoyaltyUserDetail должен иметьPIIUser, Мы попробовали эти техники свободного подхода.

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

Этот подход не создалLoyaltyUserDetailId внешний ключ вPIIUsers Таблица.

После этого мы попробовали следующий код.

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

Но на этот раз EF не создавал никаких внешних ключей в этих 2 таблицах.

У вас есть идеи по этому вопросу? Как мы можем создать однозначное необязательное отношение, используя свободную структуру API

Ответы на вопрос(6)

Ваш ответ на вопрос