EntityFramework: хранимая процедура, которая возвращает пользовательское Poco вместо сложного типа - PullRequest
3 голосов
/ 08 декабря 2011

У меня есть пользовательское POCO (уже существует и используется в моем проекте).

public class MyPoco()
{
     public string MyPocoName {get; set;}
     public string MyPocoParentName {get; set;}
}

У меня также есть хранимые процедуры, которые возвращают список значений (MyPocoName, MyPocoParentName).

Я не смог установить MyPoco в качестве типа возврата этой процедуры в мастере импорта функций.

Я не хочу создавать новый пользовательский тип с такими же пропорциями, что и MyPoco.

Есть ли способ указать тип возвращаемой хранимой процедуры MyPoco.

Спасибо.

Ответы [ 2 ]

8 голосов
/ 08 декабря 2011

Да, есть способ, но вы не должны использовать импорт функций (добавление хранимых процедур в вашу модель в этом случае не имеет смысла) Использование:

var data = objectContext.ExecuteStoreQuery<MyPoco>("spName", SqlParams);

для вызова хранимой процедуры.

1 голос
/ 28 августа 2015

Мне пришлось добавить список параметров после spName:

        var results =
            this.Context.Database.SqlQuery<MyPoco>(
                "spName @param1, @param2, @param3",
                new SqlParameter("@param1", var1), 
                new SqlParameter("@param2", var2),
                new SqlParameter("@param3", var3));
...