Мы хотим использовать одно-одно необязательное отношение, используя First 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 должен иметь пользователя PII. Мы пробовали эти быстрые методы подхода.
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 не создала никаких внешних ключей в этих двух таблицах.
Есть ли у вас идеи по этой проблеме? Как мы можем создать одно-единственное необязательное отношение, используя сначала фреймворк сущности?