【发布时间】:2009-11-13 03:51:42
【问题描述】:
我是 Linq to SQL 的新手,但我对更新表时遇到的问题感到惊讶。 通过阅读各种资料,我认为我遇到的问题是 ORM 映射的问题,但即便如此,考虑到我使用的是 VS 2008 并通过 LINQ to SQL 类创建我的 dbml,我并不期望这样。 所以发生的事情是,当我更新和/或插入一行时,表中也会创建许多其他行。我无法预测这种情况发生时的模式是什么,有时它不会发生。 我不确定下面的代码是否能很好地说明问题所在,但我在这里重现它;
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(); 行上放了一个断点。并且这些行肯定会在此时插入,而不是之前插入,之后也不会插入一些代码。
【问题讨论】:
标签: c# linq-to-sql