Ich erstellte Prozedur für jeden DB-Typen, die von meiner Anwendung unterstützt werden. und in ihre Migrationsdateien hinzugefügt.wie gespeicherte Prozedur von datenbankunabhängige Anwendung aufgerufen wird C#, codefirst
ich kann erster App in meinem Code wie diese Art zwei gespeicherte Prozedur MSSQL nennt
worker.StoredProcedures.ExecuteWithStoreProcedure("sp_userVirman @ResourceUserID,@targetUserID",
new SqlParameter("ResourceUserID",DbType.Int64) { Value = 1 },
new SqlParameter("targetUserID", DbType.Int64) { Value = 2 });
zwei
worker.StoredProcedures.ExecuteWithStoreProcedure(string.Format("sp_userVirman {0},{1}", 1, 2));
aber wenn der db Providerwechsel zu mysql, gibt es Fehler.
Eine nicht behandelte Ausnahme des Typs 'MySql.Data.MySqlClient.MySqlException' aufgetreten in EntityFramework.dll Zusätzliche Informationen: Nur MySqlParameter Objekte ändern
und auch Oracle postgresql mysql-Provider können usw.
gespeichert werden könnenWie kann dieses Problem gelöst werden?
Ich möchte nicht, wenn Provider verwenden == mssql wenn Provider == mysql etc ...
dies meine Haupt ist Funktion
public void ExecuteWithStoreProcedure(string query, params object[] parameters)
{
_dbContext.Database.ExecuteSqlCommand(query, parameters);
}