Entity Framework Code First を使用して、1 対 1 のオプションの関係を使用したいと考えています。2 つのエンティティがあります。
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 を使用して、1 対 1 の任意の関係を作成するにはどうすればよいですか?