1

アプリケーションでサポートされているデータベースの種類ごとに手順を作成しました。移行ファイルに追加されます。

私は私のコードの最初のアプリでこの2つのタイプのようにストアドプロシージャMSSQLを呼び出すことができます

worker.StoredProcedures.ExecuteWithStoreProcedure("sp_userVirman @ResourceUserID,@targetUserID", 
new SqlParameter("ResourceUserID",DbType.Int64) { Value = 1 },
 new SqlParameter("targetUserID", DbType.Int64) { Value = 2 });

2

worker.StoredProcedures.ExecuteWithStoreProcedure(string.Format("sp_userVirman {0},{1}", 1, 2));

しかし、db プロバイダーが mysql に変更されると、エラーが発生します。

タイプ 'MySql.Data.MySqlClient.MySqlException' の未処理の例外が EntityFramework.dll で発生しました 追加情報: MySqlParameter オブジェクトのみを保存できます

また、プロバイダーは oracle postgresql mysql などを変更できます。

どうすればこの問題を解決できますか?

使用したくない if provider== mssql if provider==mysql など...

これが私の主な機能です

 public void ExecuteWithStoreProcedure(string query, params object[] parameters)
    {
        _dbContext.Database.ExecuteSqlCommand(query, parameters);
    }
4

1 に答える 1