Могу ли я получить POCO из функции импорта EF4?

В контексте Entity Framework 4 поведение по умолчанию при добавлении импорта функции заключается в вызове ее через ExecuteFunction<T>(), где T, по-видимому, должен реализовывать некоторые элементы уведомления об изменении свойства. (В моем случае он генерирует сложный тип, производный от ComplexObject.)

Мне не нужны и не нужны какие-либо уведомления об изменениях, и я должен отправлять POCO по линии после этих вызовов sproc.

Есть ли способ получить POCO непосредственно из вызова EF sproc? Если нет, есть ли у кого-нибудь рекомендации по превращению моего результата sproc в POCO?

(Я немного поиграл с Шаблон POCO, но, похоже, он никак не поддерживает хранимые процедуры.)


person ladenedge    schedule 23.02.2010    source источник


Ответы (1)


ExecuteFunction<T> возвращает ObjectResult<T>, который реализует IEnumerable<T>, поэтому вы можете спроецировать T на что угодно через LINQ. Например.:

IEnumerable<MyPoco> = from f in Context.MyFunction()
                      select new MyPoco
                      {
                          A = f.A,
                          B = f.B
                      };
person Craig Stuntz    schedule 24.02.2010
comment
Это просто замечательно по сравнению с альтернативами, которые я рассматривал - спасибо! - person ladenedge; 24.02.2010