Как я могу вызвать MYSQL SP из EF4 - PullRequest
0 голосов
/ 03 июля 2011

Я пытался добавить SP в файл edmx, но входные параметры не отображаются.Я пытался использовать приведенный ниже код, но он выдает ошибки.

IEnumerable<Finance> userFinance =
((IObjectContextAdapter)this)
.ObjectContext.ExecuteStoreQuery<Finance>("GetFinanceContent @userId", parameter);

Я также пытался:

SqlParameter parameter = new SqlParameter
    {
        DbType= DbType.Int32,
        Direction = ParameterDirection.Input,
        Value= 100,
        ParameterName ="userId"
    };
var results= db.Database.ExecuteSqlCommand ("GetFinanceContent @userId", parameter);

Это дает некоторые ошибки параметров.Только объекты MySqlParameter могут быть сохранены

1 Ответ

0 голосов
/ 03 июля 2011

Просыпаться с помощью хранимой процедуры в EF4 очень легко.Здесь нет необходимости добавлять Sp в файл EDMX, вы можете получить прямой доступ к нему, просто вы должны использовать отображение функций, просто следуйте этим правилам ...

  1. Обновите вашу модель и добавьте хранимую процедурув нем.

  2. теперь в представлении браузера модели перейдите в папку «Хранимые процедуры», в которой вы увидите добавленный SP.

  3. Теперь выберите SP ивыберите опцию «Создать импорт функции», щелкнув правой кнопкой мыши.

  4. Теперь откроется окно импорта функции в разделе «Тип возврата», выберите тип возврата в соответствии с данными, возвращаемыми вашим SP...

    -> Если ваш SP возвращает точное соответствие сущности, выберите эту сущность. Если скалярное значение, затем выберите его тип возврата, если нет, то вам нужно создать сущность, которая точно соответствует вашему результату SP.

  5. После этого вы можете получить доступ к SP следующим образом.

    using(EFEntity ef = new EFEntity ())
     {
        var results = from result in ef.YourSpName(Param1, param2,..)
                  select result
     }
    

Надеюсь, это поможет вам ..

Обновленный ответ: как вы говорите, вы не получаете рarameters это означает, что здесь не определен ни один параметр в вашем SSDL, поэтому вы должны делать это вручную.

Здесь - это решение вашей проблемы.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...