DataContext
オブジェクトと Linq to SQL を c# で使用しています。ウィッシュリストのウィッシュに対する投票を、最初の質問が重複していると管理者が判断した質問に移そうとしています。ただし、vote
テーブルには主キーとしてWishId
andがあるUserId
ため、ユーザーが宛先の希望にすでに投票している場合、挿入は失敗します。私がやりたいのは、これらのケースを無視して (vote
挿入する前にテーブルをクエリせずに)、すべての有効な投票を挿入することです。これが私がやりたいことです。
using (linqWishesDataContext dataContext = new linqWishesDataContext())
{
try
{
dataContext.WishlistUpvotes.InsertAllOnSubmit(destinationVotes);
dataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch{}
}
私が今持っている1つの解決策は、これを行うことです:
foreach (WishlistUpvote vote in destinationVotes)
{
using (linqWishesDataContext dataContext = new linqWishesDataContext())
{
try
{
dataContext.WishlistUpvotes.InsertOnSubmit(vote);
dataContext.SubmitChanges();
}
catch { }
}
}
しかし、移動する必要がある数百または数千の投票がある場合、DataContext
投票ごとに新しいものを作成するのは悪い考えのようです。助言がありますか?