sql >> データベース >  >> RDS >> PostgreSQL

EntityFrameworkObjectContext->ネイティブDBMSへの生のSQL呼び出し

    クレイグの答えは、そのままでは機能しませんでしたが、私は正しい方向を向いていました。基盤となるDBMSへの接続を取得するEntityConnection.StoreConnectionプロパティがあることがわかりました。したがって、「ネイティブ」SQLの実行は次のように簡単です。

        static void ExecuteSql(ObjectContext c, string sql)
        {
            var entityConnection = (System.Data.EntityClient.EntityConnection)c.Connection;
            DbConnection conn = entityConnection.StoreConnection;
    
            ConnectionState initialState = conn.State;
            try
            {
                if (initialState != ConnectionState.Open)
                    conn.Open();  // open connection if not already open
                using (DbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                }
            }
            finally
            {
                if (initialState != ConnectionState.Open)
                    conn.Close(); // only close connection if not initially open
            }
        }
    


    1. MySQLで複数の列を検索する方法は?

    2. android.database.sqlite.sqliteconstraintexceptionエラーコード19制約の挿入エラーが失敗しました

    3. MySQL-約を取得する普遍的な方法。バイト単位の行サイズ

    4. 入力ファイルタイプを使用して画像を編集する