ホームページ > データベース > mysql チュートリアル > LINQ は SELECT クエリを使用せずに直接データベース更新を実行するにはどうすればよいですか?

LINQ は SELECT クエリを使用せずに直接データベース更新を実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-23 12:37:10
オリジナル
768 人が閲覧しました

How Can LINQ Perform Direct Database Updates Without Using SELECT Queries?

選択クエリを使用しない LINQ による直接更新の実行

LINQ では、遅延実行を利用することで、データベース操作をより効率的に行うことができます。特に、データを明示的に取得するために SELECT ステートメントを必要としない直接更新がサポートされています。

これを実現するために、LINQ はエンティティ オブジェクトに加えた変更のみに基づいて更新コマンドを生成できます。次の例を考えてみましょう。

using System;
using System.Linq;
using System.Data.Linq;

namespace LinqUpdateDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a DataContext
            DataContext dc = new DataContext();

            // Attach an entity to the DataContext
            Foo foo = new Foo { FooId = 1 };
            dc.Foos.Attach(foo);

            // Modify the entity
            foo.Name = "Updated Name";

            // Submit the changes without a SELECT query
            dc.SubmitChanges();
        }
    }

    public class Foo
    {
        public int FooId { get; set; }
        public string Name { get; set; }
    }
}
ログイン後にコピー

この例では、LINQ 式は、SELECT クエリを実行せずに、データベースに直接更新コマンドを生成します。これは、

  • オブジェクト追跡: LINQ は、現在の値と元の値を含む、エンティティ オブジェクトに対する変更を追跡します。
  • オブジェクトのアタッチ: エンティティを DataContext にアタッチすると、LINQ はそのエンティティに対して変更追跡を実行できるようになります。 property.

SubmitChanges() を呼び出すと、LINQ は foo オブジェクトへの変更に基づいて SQL UPDATE コマンドを生成します。

UPDATE Foos SET Name = 'Updated Name' WHERE FooId = 1
ログイン後にコピー

LINQ を使用するときは、データの取得に注意してください。と変更は別のステップです。これにより、クライアントへの不必要なデータ転送が回避され、効率的な運用が可能になります。

以上がLINQ は SELECT クエリを使用せずに直接データベース更新を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート