Вам необходимо добавить CALL [procedure_name]()
метод перед именем хранимой процедуры:
return ((IObjectContextAdapter)this)
.ObjectContext
.ExecuteStoreQuery<List<long?>>("CALL GetMaximumIDsCount(@AppID, @isBurnCenter, @BurnCenterID)",
appIDParameter, isBurnCenterParameter, burnCenterIDParameter);
Примечание: Хранимая процедура MySQL выполняется с этим синтаксисом:
CALL procedure_name(parameter_list)
Примечание 2: Используйте FirstOrDefault()
или SingleOrDefault()
, чтобы получить ровно один набор результатов из ObjectResult<T>
:
var x = db.GetMaximumIDsCount2(...).FirstOrDefault();
В качестве примечания можно попробовать объявить параметры с помощью MySqlParameter
вместо ObjectParameter
:
// you can change DBNull.Value with any appropriate value
var appIDParameter = new MySqlParameter("AppID", MySqlDbType.Int).Value = (appID.HasValue) ? appID : DBNull.Value;
var isBurnCenterParameter = new MySqlParameter("isBurnCenter", MySqlDbType.Int).Value = (isBurnCenter.HasValue) ? isBurnCenter : DBNull.Value;
var isBurnCenterParameter = new MySqlParameter("BurnCenterID", MySqlDbType.Int).Value = (burnCenterID.HasValue) ? burnCenterID : DBNull.Value;
Ссылка:
Синтаксис CALL (MySQL)