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);
这种方法没有在PIIUsers
表中创建LoyaltyUserDetailId
外键。
之后我们尝试了以下代码。
modelBuilder.Entity<LoyaltyUserDetail>()
.HasRequired(t => t.PIIUser)
.WithRequiredDependent(t => t.LoyaltyUserDetail);
但是这一次EF没有在这两个表中创建任何外键。
您对此问题有什么想法吗? 我们如何使用实体框架流畅的API创建一个一对一可选关系?