私は以下のように2つのクラスを持っています
コンタクトクラス
public class Contact : Person
{
public Contact() { }
//public string WebPageAddress { get; set; }
public string NickName { get; set; }
public string SpouseName { get; set; }
public DateTime? Datejoin { get; set; }
public double NoOfLeave { get; set; }
double _totalTake;
public double TotalTake
{
get
{
double total = 0;
if (LeaveTakenDetails != null)
{
if (LeaveTakenDetails.Count() > 0)
{
foreach (LeaveTakenDetails leave in LeaveTakenDetails)
{
total += leave.TotalDayTake;
}
}
}
if (total == 0)
{
return _totalTake;
}
else
{
if(total > _totalTake)
{
return total;
}
else
{
return _totalTake;
}
}
//return total;
}
set { _totalTake = value; }
}
public double RemainLeave { get; set; }
public TitleOfCourtesy TitleofCourtesy { get; set; }
public DateTime? Anniversary { get; set; }
[FieldSize(4096)]
public string Notes { get; set; }
public virtual Position Position { get; set; }
public virtual IList<DemoTask> TrackedTasks { get; set; }
public virtual Department Department { get; set; }
[DataSourceProperty("Department.Contacts", DataSourcePropertyIsNullMode.SelectAll)]
[DataSourceCriteria("Position.Title = 'Manager'")]
public virtual Contact Manager { get; set; }
public virtual IList<LeaveTakenDetails> LeaveTakenDetails { get; set; }
}
public enum TitleOfCourtesy { Dr, Miss, Mr, Mrs, Ms };
LeaveTaken クラス
public class LeaveTakenDetails : INotifyPropertyChanged
{
public LeaveTakenDetails() { }
[Key]
[Browsable(false)]
public Int32 LeaveID { get; protected set; }
private double totaltake;
[Editable(false)]
[Appearance("LeaveTake", Enabled=false)]
[ImmediatePostData]
public double TotalDayTake
{
get
{
}
set
{
}
}
public DateTime Datefrom {
get; set;
}
public DateTime DateTo
{
get;
set;
}
public virtual LeaveType LeaveType { get; set; }
public bool AMSession { get; set; }
public virtual Department Department { get; set; }
public string Reason { get; set; }
public DateTime? ApproveDate { get; set; }
public virtual Contact ApproveBy { get; set; }
public bool Halfday { get; set; }
public int Employee_ID { get; set; }
[ForeignKey("Employee_ID")]
public virtual Contact Employee { get; set; }
}
私の ApproveBy および Employee プロパティは、同じ Contact クラスを参照しています。コードを実行すると、コードは最初にテーブルを生成します。プログラムを実行して休暇記録を追加しようとすると、従業員 A を選択し、承認者は従業員 C で、記録を保存します。従業員フォームに移動して従業員 A を探しますが、従業員 A の休暇記録はありませんが、追加された休暇記録は従業員 A のものです。
どうすればこの関係を築くことができますか?Leave Taken クラスに 2 つの FK があり、同じ Contact クラスを参照していて、これが発生していると思います。
休暇記録が従業員フォームの従業員 A に属していることがわかりますか? 助けてください!ありがとうございました。