Я новичок в Linq to SQL, но меня удивляют проблемы с обновлением таблицы.
Читая различные источники, я думаю, что проблема, которую я получаю, связана с отображением ORM, но даже в этом случае, учитывая, что я использую VS 2008 и создаю свой dbml через класс LINQ to SQL, я не ожидаю этого.
Итак, что происходит, когда я обновляю и / или вставляю строку, в таблице также создается много других строк. Я не могу предсказать, что такое паттерн, когда это происходит, иногда этого не происходит.
Я не уверен, что приведенный ниже код говорит о том, в чем проблема, но я воспроизвожу ее здесь;
public static void UpdateDailyTimeRecorded(
int dailyTimeRecordedId, bool amFlag, string timeIn, string timeOut)
{
DailyTimeRecorded dtr = GetDailyTimeRecorded(dailyTimeRecordedId);
if (amFlag == true)
{
dtr.MorningTimeIn_HH = Convert.ToInt32(timeIn.Substring(0, 2));
dtr.MorningTimeIn_MM = Convert.ToInt32(timeIn.Substring(3, 2));
dtr.MorningTimeOut_HH = Convert.ToInt32(timeOut.Substring(0, 2));
dtr.MorningTimeOut_MM = Convert.ToInt32(timeOut.Substring(3, 2));
dtr.MorningLeaveFlagId = 0;
}
else
{
dtr.AfternoonTimeIn_HH = Convert.ToInt32(timeIn.Substring(0, 2));
dtr.AfternoonTimeIn_MM = Convert.ToInt32(timeIn.Substring(3, 2));
dtr.AfternoonTimeOut_HH = Convert.ToInt32(timeOut.Substring(0, 2));
dtr.AfternoonTimeOut_MM = Convert.ToInt32(timeOut.Substring(3, 2));
dtr.AfternoonLeaveFlagId = 0;
}
try
{
db.SubmitChanges();
}
catch (ChangeConflictException)
{
db.ChangeConflicts.ResolveAll(RefreshMode.KeepChanges);
}
}
Я поставил точку останова на строке db.SubmitChanges (); и строки вставляются в этот момент наверняка, не раньше и не в некоторый код позже.