Chúng tôi muốn sử dụng mối quan hệ một đối một tùy chọn bằng cách sử dụng Mã khung thực thể trước. Chúng tôi có hai thực thể.
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
có thể có a LoyaltyUserDetail
nhưng LoyaltyUserDetail
phải có a PIIUser
. Chúng tôi đã thử các kỹ thuật tiếp cận thông thạo này.
modelBuilder.Entity<PIIUser>()
.HasOptional(t => t.LoyaltyUserDetail)
.WithOptionalPrincipal(t => t.PIIUser)
.WillCascadeOnDelete(true);
Cách tiếp cận này không tạo LoyaltyUserDetailId
khóa ngoại trong PIIUsers
bảng.
Sau đó, chúng tôi đã thử đoạn mã sau.
modelBuilder.Entity<LoyaltyUserDetail>()
.HasRequired(t => t.PIIUser)
.WithRequiredDependent(t => t.LoyaltyUserDetail);
Nhưng lần này EF không tạo khóa ngoại nào trong 2 bảng này.
Bạn có bất kỳ ý tưởng cho vấn đề này? Làm cách nào chúng ta có thể tạo mối quan hệ 1-1 bằng cách sử dụng api thông thạo khung thực thể?