Мы хотим использовать необязательные отношения один к одному, используя 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 не создавал никаких внешних ключей в этих двух таблицах.
У вас есть идеи по этому поводу? Как мы можем создать необязательные отношения один-к-одному, используя Fluent API Entity Framework?