因此,我们有一个服务,它通过WCF服务获取更新列表,然后将其写入数据库。其中一些可能会失败(每个查询1000次更新/插入),如果他们这样做,则要求写入其余的插入/更新,并且无法记录以便稍后处理......
问题是如何在LINQ to SQL中完成此操作。目前,我正在做类似的事情:
TestDataContext dc = new TestDataContext();
Random r = new Random();
for (int i = 0; i < 300; i++)
{
Table table = new Table { randomNumber = r.Next(150) };
dc.Tables.InsertOnSubmit(table);
}
try
{
dc.SubmitChanges();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
在此示例中,Table.randomNumber是主键。在写入之前数据集中应该有重复项,但是当我调用dc.SubmitChanges()时,它会抛出异常...而不是在每次迭代后调用dc.SubmitChanges(),有没有更好的方法呢?
答案 0 :(得分:0)
我最后在编写每一行时提交了每一行,并发现任何错误。这样,我可以捕获失败,但正确插入其余部分。它并不像我一样慢,但并不理想......请注意,因为这是一个“脱机”(后端处理)的过程,它可以满足我们的需要。