LINQを使用するコレクションに対して一括更新する方法はありますか?現在のところList<myObject>
があり、リストのすべての行に対してcolumn1をTESTに更新したい場合は、foreachループを設定し、各オブジェクトに対して値を設定して保存します。これはうまく動作しますが、そこにLINQメソッドがあるかどうか疑問に思っていたところで、myOject.BulkUpdate(columnName, value)
のようなことができましたか?LINQ to SQLを使用した一括更新
答えて
LINQ To SQLを使用しているような音がしており、既に基本的なレイアウトが用意されています。
LINQ To SQLは、テーブルをクラスに抽象化することを目的としており、実際には「銀色の弾丸」やワンライナーを提供していません。
これを実行する唯一の方法は、ストアドプロシージャを作成して列名と新しい値を取得し、そのロジックを実装することです。
db.MassUpdateTableColumn("Customer", "Name", "TEST");
....
CREATE PROC MassUpdateTableColumn
@TableName varchar(100), @ColumnName varchar(100), @NewVal varchar(100)
AS
/*your dynamic SQL to update a table column with a new val. */
そうでない場合、それはあなたが説明するようだ:
List<Customer> myCusts = db.Customers.ToList();
foreach(Customer c in myCusts)
{
c.Name = "TEST";
}
db.SubmitChanges();
はい私はこれを行う方法を理解しています。私の質問は、より合理化されたLINQ機能があるかどうか尋ねるだけです。 – esastincy
LINQをSQLに(またはEFそのことについては)、それらすべてを操作し、メモリ内にオブジェクトをもたらすことについてです、各行ごとに個別のデータベース要求を使用して更新します。
クライアント上でオブジェクト全体を水和する必要がない場合は、LINQの代わりにサーバー側の操作(ストアドプロシージャ、TSQL)を使用する方がはるかに優れています。 LINQプロバイダを使用して、データベースに対してTSQLを発行できます。たとえば、LINQ to SQLを使用すると、context.ExecuteCommand( "テーブルのフィールドを更新する値=条件式")を使用できます。ちょうどSQL Injectionに気を付けてください。
あなたの要件は、Linqの表現とこのトピックに関するTerry Aneyの優れたライブラリを使用して完全に可能です。
Batch Updates and Deletes with LINQ to SQL
次のように与えた例の面で更新は次のようになります。
using BTR.Core.Linq;
...
Context.myObjects.UpdateBatch
(
Context.myObjects.Where(x => x.columnName != value),
x => new myObject { columnName = value}
);
編集(2017年1月20日):それは、これが利用可能になりました何の価値がありますNuGetパッケージ@https://www.nuget.org/packages/LinqPost/の形式で提供されます。
Install-Package LinqPost
RBARを避けるために、最初の答えは本当に正しいわけではありません。 – Jasmine
- 1. LINQ to SQL - VBを使用した一括挿入
- 2. WinFormsのLinq to SQLを使用した更新可能なデータグリッド
- 3. SQL INNER JOINを使用した一括更新フィールド
- 4. SQL Azureを使用したLINQ to SQL
- 5. PL/SQL一括バインド/一括更新文
- 6. Linq-to-SQLを使用してレコードを更新する
- 7. LINQ to SQLを使用して更新/セットを実行する
- 8. LINQ to SQLを使用したMicrosoft Reporting
- 9. intを使用したLinq-to-SQL?
- 10. Linq-To-SQLを使用したビジネスロジック
- 11. linq to SQLクエリーを使用したクエリ
- 12. Linq to Entityを使用したSQLクエリ
- 13. SQLでの一括更新
- 14. 一括データ更新SQL Server
- 15. Linq to SQLデータを更新する
- 16. c#linq to sql - データベーステーブルを更新する
- 17. LINQ TO SQL; GridViewコントロールを使用したDBからの挿入/更新/削除
- 18. LINQ-to-SQL単一XMLレコードを更新するには?
- 19. LINQ to SQLは::データ更新の問題
- 20. Linq-To-SQLで更新するには?
- 21. LINQ-to-SQLクラスのカスケード削除/更新
- 22. linq-to-SQLの条件付き更新
- 23. データベース内のMVC Linq to SQL更新オブジェクト
- 24. Linq to SQLの部分的な更新?
- 25. SqlCEデータベースの更新Linq-to-SQL
- 26. ElasticSearch一括更新:Pythonスクリプトを使用したJSONの整理
- 27. LINQ TO SQLを使用して単一行を選択
- 28. ElasticSearchの一括更新データ:一括更新/削除とエイリアスを使用したゼロからのインデックス付け
- 29. Linq To SQLを使用してMVC3 ViewModelからレコードを更新する
- 30. Linq to Sql - リポジトリパターンを使用してオブジェクトを更新するには?
あなたは、LINQ-TO-SQLについて話していますか? –
XMLをバルクデータとして使用してバルク更新を行うストアドプロシージャには常に戻りましたが、LINQで可能かどうかを知りたいと思います。 –