[解決済み] Entity Frameworkで複数行を削除する方法(foreachを使用しない)
2022-03-15 20:46:20
質問
Entity Frameworkを使用して、あるテーブルからいくつかの項目を削除しています。外部キー/親オブジェクトがないので、OnDeleteCascadeでこれを処理することができません。
今現在はこうしています。
var widgets = context.Widgets
.Where(w => w.WidgetId == widgetId);
foreach (Widget widget in widgets)
{
context.Widgets.DeleteObject(widget);
}
context.SaveChanges();
動作はするのですが、foreachがバグってます。EF4を使っていますが、SQLを実行したくありません。私は何も見逃していないことを確認したいのですが、これと同じくらい良いものですよね?拡張メソッドやヘルパーで抽象化することはできますが、どこかでforeachを行うことになりますよね?
どのように解決する?
SQLを直接実行したくない場合は、ループ内でDeleteObjectを呼び出すことが、現在できる最善の方法です。
しかし、私が説明した方法を使えば、SQL を実行しながらも、拡張メソッドによって完全に汎用化することができます。 こちら .
ただし、この回答は3.5でのものです。4.0では、StoreConnectionまで落とすのではなく、新しいExecuteStoreCommand APIをフードで使用すると思います。
関連
-
[解決済み] 不変量名 'System.Data.SqlClient' を持つ ADO.NET プロバイダに対応する Entity Framework プロバイダが見つかりませんでした。
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み] Entity Frameworkにおける最速の挿入方法
-
[解決済み] Entity Frameworkで生成されたSQLを表示するにはどうすればよいですか?
-
[解決済み] Entity Framework - 複数レベルのプロパティを含める
-
[解決済み] エンティティ・フレームワーク・マイグレーションをリセットする
-
[解決済み] Entity Framework 4 / POCO - 何から始めるか?[クローズド]
-
[解決済み] Entity Frameworkのバージョンは?
-
[解決済み] Entity FrameworkとSQL Server View
-
[解決済み] Entity Framework Code First - Fluent ApiとData Annotationsのメリット・デメリット【終了しました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] コードファーストとモデル・データベースファーストの比較【終了しました
-
[解決済み] EFのマイグレーション。最後に適用したマイグレーションをロールバックしますか?
-
[解決済み] エンティティ・フレームワーク・マイグレーションをリセットする
-
[解決済み】.ToList(), .AsEnumerable(), AsQueryable()の違いは何ですか?
-
[解決済み】Entity Frameworkで複数のカラムにユニークキー制約を設定する
-
[解決済み] Entity Framework Code Firstでオブジェクトをデタッチするにはどうすればいいですか?
-
[解決済み] Entity Framework - やり直し - すべての移行を元に戻す/ロールバックする
-
[解決済み] Symfony2で現在のユーザを表すエンティティを取得する方法は?
-
[解決済み] Entity Frameworkのバージョンは?
-
[解決済み] Entity Framework コード 一意の列