【发布时间】:2017-05-19 21:03:15
【问题描述】:
我为我的应用程序支持的每种数据库类型创建了过程。并添加到他们的迁移文件中。
我可以在我的代码优先应用程序中调用这两种类型的存储过程 MSSQL 一个
worker.StoredProcedures.ExecuteWithStoreProcedure("sp_userVirman @ResourceUserID,@targetUserID",
new SqlParameter("ResourceUserID",DbType.Int64) { Value = 1 },
new SqlParameter("targetUserID", DbType.Int64) { Value = 2 });
两个
worker.StoredProcedures.ExecuteWithStoreProcedure(string.Format("sp_userVirman {0},{1}", 1, 2));
但是当 db 提供程序更改为 mysql 时,它会出错。
EntityFramework.dll 中出现“MySql.Data.MySqlClient.MySqlException”类型的未处理异常 附加信息:只能存储 MySqlParameter 对象
供应商也可以更改 oracle postgresql mysql 等。
如何解决这个问题?
我不想使用 if provider== mssql if provider==mysql etc...
这是我的主要功能
public void ExecuteWithStoreProcedure(string query, params object[] parameters)
{
_dbContext.Database.ExecuteSqlCommand(query, parameters);
}
【问题讨论】:
标签: mysql sql-server database stored-procedures database-independent