Как легко преобразовать объект DbDataReader во что-то полезное? - PullRequest
0 голосов
/ 27 марта 2009

Я вручную вызываю хранимую процедуру, используя Entity Framework EntityConnection, например:

DbConnection storeConnection = entityConnection.StoreConnection;
DbCommand command = storeConnection.CreateCommand();
command.CommandText = "sp_GetMyComplexData";
command.CommandType = CommandType.StoredProcedure;

DbDataReader reader = command.ExecuteReader();

Причина этого в том, что структура сущностей не может легко поддерживать сущности, которые не отображаются напрямую в таблицы или представления. Я нашел эту статью (http://dotnet.dzone.com/news/mapping-stored-procedure),, но она требует редактирования XML, чего я хотел бы избежать.

В моем случае я просто запускаю запрос, который объединяет две таблицы, используя LEFT JOIN. Причина этого в том, что я пытаюсь связать результаты с Telerik RadGrid, который не поддерживает экспорт иерархических данных, но, похоже, поддерживает экспорт сгруппированных данных.

Проблема в том, как мне преобразовать объект DbDataReader во что-то полезное, что я могу привязать к моей RadGrid? Я передавал отдельные объекты или объекты IQueryable в моих методах DAL. Есть идеи? Заранее спасибо?

EDIT:

Мне нужны только данные. Мне не нужно делать какие-либо вставки, обновления, удаления после этого. Представление только для чтения.

1 Ответ

1 голос
/ 27 марта 2009

Я не знаю о RadGrid, но вы можете привязать этот обработчик данных к встроенным элементам управления сеткой, таким как GridView. Вы просто не можете использовать его для обновлений, удалений или вставок.

В противном случае вы можете превратить его в таблицу данных с помощью метода .Load (). Но вам все равно нужно знать, как выполнить вставку / обновление / удаление вручную.

...