私は、次のリモート検証規則を持って次のように私のクラスにプロパティにリンクされているEntity Framework Coreは保存時にデータを検証しませんか?
[AcceptVerbs("Get", "Post")]
public IActionResult ValidateWindowEndDate(DateTime? endDate, DateTime? startDate)
{
int minWeeks = 8;
if (startDate.HasValue && endDate.HasValue
&& (endDate < startDate.Value.AddDays(minWeeks * 7)))
{
return Json(data: $"Inspection window end date must be at least {minWeeks} weeks after start date.");
}
return Json(data: true);
}
:私は私の見解では無効なデータを入力すると、予想通り
[Required]
[Remote("ValidateWindowEndDate", "InspectionWindow", AdditionalFields = "StartDate")]
public DateTime EndDate { get; set; }
、検証が発生します。しかし、コード内でオブジェクトのインスタンスを取得した場合は、無効な日付に変更してデータベースに保存し直してください。
luInspectionWindow.EndDate = luInspectionWindow.StartDate.AddDays(1);
_context.Update(luInspectionWindow);
await _context.SaveChangesAsync();
[保存は例外なく行われ、検証メソッドが呼び出されることはありません、私は期待していた動作ではありませんでした。私はEFがレコードを無効と拒絶すると思ったのですか?これは期待される行動ですか?