Хобрук: Ваш путь к мастерству в программировании

ASP.NET MVC EF Вызов хранимой процедуры MySQL без параметров

Я использую Entity Framework ExecuteStoreQuery для вызова хранимой процедуры MySql с выходным параметром. Процедура сохранения также возвращает набор результатов.

Я получаю следующую ошибку.

Аргумент OUT или INOUT 2 для подпрограммы mydb.mysp не является переменной или НОВОЙ псевдо-переменной в триггере BEFORE

Что не так? Есть ли лучший способ вызвать MySql sp с сочетанием параметров out и набора результатов?

Вот код

     var outParam = new MySqlParameter();
                outParam.ParameterName = "totalRowsOut";
                outParam.MySqlDbType = MySqlDbType.Int64;
                outParam.Direction = ParameterDirection.Output;

var data =  db.ExecuteStoreQuery<PropertySearchResultRow>
(
    "call mysp(@input1, @totalRowsOut);", 
    new MySqlParameter("input1", 10),
    outParam
);

var result = data.ToList();
int totalRowsCount = (int)outParam.Value;

Ответы:


1

В конце концов, мы использовали ado.net MySqlCommand для вызова сохраненной процедуры и получения выходного значения. Интеграция Mysql и EF плохая.

05.06.2012

2

Вам просто нужно указать имя хранимой процедуры и передать параметры. Что-то вроде этого

var data =  db.ExecuteStoreQuery<PropertySearchResultRow>
(
    "mysp",new MySqlParameter("input1", 10),outParam
);
13.04.2012
  • Вот ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис рядом с mysp 13.04.2012

  • 3

    Вот мой пример кода, работающего с VS2012 и Mysql connector 6.8.3, надеюсь, это кому-то поможет.

    public static IList<MyClass> GetCustOrderHist(string someParameter)
        {
            IList<MyClass> data = ((IObjectContextAdapter)TestDashboardEntities).ObjectContext.ExecuteStoreQuery<MyClass>("CALL CustOrderHist({0});", someParameter).ToList();
    
            return data;
        }
    
        public class MyClass
        {
            public string ProductName { get; set; }
            public int TOTAL { get; set; }
        }
    
    12.10.2014
    Новые материалы

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..

    Раскрытие возможностей НЛП: часть речевой маркировки и ее проблемы
    В сфере обработки естественного языка (NLP) маркировка частей речи (POS) выступает в качестве фундаментального метода, позволяющего компьютерам понимать и анализировать человеческий язык на..

    Под поверхностью: раскрытие деталей системы с помощью инструментов Linux CLI
    Чем больше вы изучаете Linux и продвигаетесь вперед, тем больше вам нужно проверять информацию о вашей системе. Эта информация может касаться аппаратного обеспечения, такого как процессор,..