私は2つのエンティティを持っています:
public class User
{
public int userId { get; set; }
public string name { get; set; }
public Guid userGuid { get; set; }
}
public class Absence
{
public int absenceId { get; set; }
public Guid applicantId { get; set; }
public User applicant { get; set; }
public Guid permitterId{ get; set; }
public User permitter{ get; set; }
...
}
AbsencesConfiguration:
this.HasRequired(u => u.Applicant).WithMany().HasForeignKey(d => d.ApplicantId);
this.HasRequired(u => u.Permitter).WithMany().HasForeignKey(d => d.PermitterId);
2 つのクラス間の Fluent API マッピングが必要ですが、次のエラー メッセージが表示されます。
Blockquote\tSystem.Data.Entity.Edm.EdmAssociationConstraint: : 参照制約の従属ロールのすべてのプロパティの型は、主ロールの対応するプロパティの型と同じでなければなりません。エンティティ 'Absences' のプロパティ 'ApplicantId' のタイプは、参照制約 'Absences_Applicant' のエンティティ 'User' のプロパティ 'UserId' のタイプと一致しません。
これは、EF が UserGuid 列ではなく User エンティティの UserId を使用して 2 つのテーブルを結合しようとするためだと思います。Absence エンティティのこれら 2 つの列を一意にしようと考えましたが、どうすればそれらを一緒にマップできますか?
前もって感謝します。