Как легко преобразовать объект DbDataReader во что-то полезное?

Я вручную вызываю хранимую процедуру, используя 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. Есть идеи? Заранее спасибо?

РЕДАКТИРОВАТЬ:

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

1 ответ

Решение

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

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

Другие вопросы по тегам