これはすぐに必要ですが、パフォーマンスとデザインの観点から何をお勧めしますか。
あなたが何かをする必要があるとき、何がより速くそしてより良いでしょうか?できるかどうか、できるかどうかを確認してください。または、直接試してみてください。失敗した場合は、実行方法を理解してください。
これは私の特定のケースです。foreachを使用して入力するデータベーステーブルがあります。テーブルには、表で繰り返すことができない主キーがあります。
それで..
foreach(object in Objects)
{
bool exists = //SQL SELECT to check if exists.
if (exists == false)
{
//SQL INSERT
return INSERTED
}
else
{
return failed
}
}
また
foreach(object in Objects)
{
try
{
//SQL INSERT
return INSERTED
}
catch
{
return FAILED
}
}
オーバーライドプロパティなしでファイルを作成し、実行を管理したり、試行する前にファイルが存在するかどうかを確認したりするなど、別の方法でこれのベストプラクティスを知りたいと思います。
更新: 回答に基づいて、パフォーマンスのために挿入ごとにトランザクションを実行するべきではないことがわかっています。バルクインサートを作成する必要があります。私のコードでは、私はこのような何かを持っています
//SQL Start Transaction
foreach
{
//SQL INSERT
}
//SQL Commit transaction
私の質問は、挿入する前に確認する必要があるのか、それとも単に試す必要があるのか、トランザクションの内部についてです。