ADO.NET Entity Framework で更新系ステートメント(UPDATE/DELETE/INSERT)を直接実行(ExecuteStoreCommand)

ADO.NET Entity Framework では、ExecuteStoreCommand メソッドを利用して、更新系ステートメント(UPDATE/DELETE/INSERT)を直接実行することもできます。これは次のように記述します。

Imports System.Data.SqlClient
          :
        ' UPDATE ステートメントの実行
        Using ctx As New NorthwindEntities()
            Dim cnt As Integer
            cnt = ctx.ExecuteStoreCommand( _
                    "UPDATE Products SET ProductName = 'ChaiX' " _
                    & "WHERE ProductID = 1")
            Console.WriteLine(cnt & " 件処理されました")
        End Using

        ' INSERT ステートメントの実行
        Using ctx As New NorthwindEntities()
            Dim cnt As Integer
            cnt = ctx.ExecuteStoreCommand( _
                    "INSERT INTO Products(ProductName, DisContinued) " _
                    & "VALUES('AAA', 1)")
            Console.WriteLine(cnt & " 件処理されました")
        End Using

        ' DELETE ステートメントの実行
        Using ctx As New NorthwindEntities()
            Dim para1 As New SqlParameter("@para1", SqlDbType.Int)
            para1.Value = 78

            Dim cnt As Integer
            cnt = ctx.ExecuteStoreCommand( _
                    "DELETE FROM Products " _
                    & "WHERE ProductID >= @para1" _
                    , para1)
            Console.WriteLine(cnt & " 件処理されました")
        End Using

ステートメント内のパラメーターは、ADO.NET の SqlParameter(System.Data.SqlClient)で定義することができます。