データベース内のテーブルから既存の行を取得し、その値を更新してそれらの変更を保存するメソッドがあります。問題のテーブルには、次の列があります。
更新を行うコードは次のとおりです。
public void Update(Accommodation accommodation, string code, int supplierId)
{
var existingAccommodation = Get(a => a.Code == code && a.SupplierId == supplierId);
DateTime now = DateTime.Now;
existingAccommodation.ModifiedDate = now;
existingAccommodation.Description = accommodation.Description;
existingAccommodation.Introduction = accommodation.Introduction;
existingAccommodation.Name = accommodation.Name;
existingAccommodation.Strapline = accommodation.Strapline;
existingAccommodation.Type = accommodation.Type;
existingAccommodation.Processed = true;
DataContext.SaveChanges();
}
問題は、その行DataContext.SaveChanges();
が例外を引き起こし、その innerexception が次のように言うことです:
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value
これは、上記のコードが呼び出される場所です
Accommodation existingAccommodation = GetByCode(code, supplierId);
if (existingAccommodation != null)
{
_accommodationRepository.Update(
accommodation, code, existingAccommodation.SupplierId);
}