Entity Framework Хранимые процедуры и POCO - PullRequest
3 голосов
/ 29 марта 2012

Мне нужен совет по использованию хранимых процедур с Entity Framwork 4.x для возврата данных в объекты POCO.Я не хочу копировать данные из объекта сущности в объект POCO.Я хочу выполнить сохраненный процесс и загрузить данные непосредственно в мой класс POCO.

Есть ли способ сделать это?Нужно ли мне какое-то отображение, как вы бы использовали в Nhibernate?Если это так, может ли это отображение основываться на атрибутах?

Редактировать: Используя приведенную ниже справку Джастина, я обнаружил, что способ сделать это:

SqlParameter p1 = new SqlParameter("@p1", "xxxx");
SqlParameter p2 = new SqlParameter("@p2", "yyyy");

SqlParameter[] parameters = new SqlParameter[2];
parameters[0] = p1;
parameters[1] = p2;

returned = base.ExecuteStoreQuery<YourClass>("exec your_stored_proc_name @p1, @p2", parameters);

1 Ответ

4 голосов
/ 29 марта 2012

Да, вы можете использовать универсальную версию ExecuteStoreQuery , как только вы доберетесь до ObjectContext :

var listOfType= ((IObjectContextAdapter)context).ObjectContext
                    .ExecuteStoreQuery<Type>("SPROCNAME");

Вот пример кода MSDN(просто измените TSQL на sproc)

И вот пример, показывающий, как обращаться с параметрами

В более новых версиях EF SqlQuery и DbContext.Database для упрощения получения ObjectContext :

var listOfType = context.Database.SqlQuery<Type>("SPROCNAME");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...