次のように、コントローラーでそれを行うことができます。
if(teamMember.JoinDate == null)
{
teamMember.JoinDate = project.StartDate;
}
その場合は、さらにロジックを追加できproject.StartDate == null
ますproject.StartDate = DateTime.Now
。
ただし、モデル自体のデフォルトとしてこれを実行できるかどうかはわかりません。
アップデート
あなたがそれを持っているので、私はProject StartDate
見ることができないとTeamMember JoinDate
思います、私はあなたが彼らに1対1の関係を与える必要があると思います。私は自分の仕事用システムを使用していないため、正確な構文はわかりませんが、次のようなものが機能するはずです。
public class TeamMember
{
public DateTime JoinDate
{
get { return this.JoinDate; }
set { JoinDate = this.Project.StartDate; }
}
[Required]
public string Name{ get; set; }
public virtual Project Project { get; set; }
}
public class Project
{
[Required]
public string Name { get; set; }
public DateTime StartDate { get; set; }
}
アップデート2
それについて考えると、JoinDateをnullにする必要があります。そうしないと、検証エラーがスローされます。次に、その値があるかどうかを確認する必要があります。このようなもの:
public class TeamMember
{
public DateTime? JoinDate
{
get { return this.JoinDate; }
set
{
if(JoinDate == null)
{
JoinDate = this.Project.StartDate;
}
else
{
JoinDate = JoinDate;
}
}
}
[Required]
public string Name{ get; set; }
public virtual Project Project { get; set; }
}