Entity Framework не работает с хранимыми процедурами! - PullRequest
7 голосов
/ 01 октября 2009

Правда ли, что вы не можете вызвать sp с помощью EF, если sp не возвращает сущность?

Для проверки я создал 3 импорта функций для sp с 1. нет типа возврата 2. скалярный тип возврата и 3. тип возврата объекта

тогда, когда я наберу «DataContext», тогда «.» Я получаю intellisense только для функции, которая возвращает сущность!

Я удивлен, что это не актуальная функция!

Что люди используют в качестве обходного пути?

Ответы [ 4 ]

2 голосов
/ 01 октября 2009

Есть обходной путь!

Джули Лерман написала пост об этом. Посмотрите ее блог: http://thedatafarm.com/blog/data-access/implement-select-stored-procedures-that-return-miscellaneous-data-in-ctp2-of-ef-designer/

Это очень помогло мне реализовать мои хранимые процедуры.

0 голосов
/ 01 октября 2009

В EF v1 вы можете отображать только те процедуры, которые возвращают сущности. В EF v4 вы можете отобразить результаты процедур на сложные типы, поэтому большинство процедур можно использовать без возврата сущностей.

Используйте ответ Chrigl (+1) в качестве обходного пути для v1.

0 голосов
/ 01 октября 2009

Использование мощных шаблонов T4

Entity Framework V1.0 чувствует себя и является незаконченным продуктом, слишком рано представленным публике. Вот почему можно использовать шаблоны T4, которые создают другой код из файлов EDMX, который также поддерживает хранимые процедуры скалярного типа.

Мы используем пользовательские шаблоны с множеством модификаций, поэтому они создают объекты бизнес-уровня, интерфейсы для IoC / TDD, а также DAL и DAO. Мы получаем все из файлов EDMX. Черт возьми, мы даже создаем перечисления, но они создаются из реальных данных в БД, а не из файлов EDMX.

Вы сможете найти множество шаблонов T4 ... Вот тот, который делает скалярные хранимые процедуры . Но вы можете захотеть получить тот, который на самом деле делает POCO.

0 голосов
/ 01 октября 2009

Должен вернуть сущность, да.

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