【发布时间】:2012-11-28 20:51:35
【问题描述】:
我正在使用 c# 中的 DataContext 对象和 Linq to SQL。我正在尝试将愿望清单上的愿望投票转移到管理员已确定第一个问题与其重复的问题。但是,由于vote 表有WishId 和UserId 作为主键,如果用户已经对目标愿望进行了投票,那么插入将失败。我想做的是忽略这些情况(在插入之前不查询vote 表)并插入所有有效选票。这就是我想做的。
using (linqWishesDataContext dataContext = new linqWishesDataContext())
{
try
{
dataContext.WishlistUpvotes.InsertAllOnSubmit(destinationVotes);
dataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch{}
}
我现在的一个解决方案是这样做:
foreach (WishlistUpvote vote in destinationVotes)
{
using (linqWishesDataContext dataContext = new linqWishesDataContext())
{
try
{
dataContext.WishlistUpvotes.InsertOnSubmit(vote);
dataContext.SubmitChanges();
}
catch { }
}
}
但是如果有几百或几千张选票需要移动,那么为每张选票创建一个新的DataContext 似乎是个坏主意。有什么建议吗?
【问题讨论】:
标签: c# linq-to-sql datacontext