EntityFrameworkCoreを使用したい場合は、更新を行います。たとえば、タイプが「A」のこのテーブルのすべての行を「タイプA」の名前に更新すると、EFによってどのように処理されますか?
public class Deck
{
public string DeckGuid { get; set; }
public string Name { get; set; }
public string Type { get; set; }
}
EFはすべての行を取得するか、または取得させてから、Type = "A"の行を選択してから、それらを1つずつ更新しますか?
また、更新が必要な行が100万行ある場合など、行を1つずつ実行しないように更新をコーディングする方法はいくつかありますか?
また、1つの行だけが更新され、列Typeにインデックスがある場合はどうでしょうか。これのいずれかが考慮されていますか?
中を見て、このEF拡張。EFを介して大量のデータを処理する場合に非常に便利です。更新シナリオの例(ドキュメントから):
//Delete
context.Items.Where(a => a.ItemId > 500).BatchDelete();
context.Items.Where(a => a.ItemId > 500).BatchDeleteAsync();
// Update (using Expression arg.) supports Increment/Decrement
context.Items.Where(a => a.ItemId <= 500).BatchUpdate(a => new Item { Quantity = a.Quantity + 100 });
// can be as value '+100' or as variable '+incrementStep' (int incrementStep = 100;)
// Update (via simple object)
context.Items.Where(a => a.ItemId <= 500).BatchUpdate(new Item { Description = "Updated" });
context.Items.Where(a => a.ItemId <= 500).BatchUpdateAsync(new Item { Description = "Updated" });
// Update (via simple object) - requires additional Argument for setting to Property default value
var updateColumns = new List<string> { nameof(Item.Quantity) }; // Update 'Quantity' to default value('0'-zero)
var q = context.Items.Where(a => a.ItemId <= 500);
int affected = q.BatchUpdate(new Item { Description = "Updated" }, updateColumns);//result assigned to variable
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加