如何轻松地将DbDataReader对象转换为有用的东西?

我使用Entity Framework EntityConnection手动调用存储过程,如下所示:

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

这样做的原因是entity framework不容易支持不直接映射到表或视图的实体。 我发现这篇文章( http://dotnet.dzone.com/news/mapping-stored-procedure ),但它需要编辑XML,我想避免。

在我的情况下,我只是运行一个使用LEFT JOIN连接两个表的查询。 之所以这样,是因为我试图将结果绑定到Telerik RadGrid,它不支持分层数据导出,但似乎支持分组数据导出。

问题是,如何将DbDataReader对象转换为可以绑定到RadGrid的有用的东西? 我一直在DAL方法中传递单个对象或IQueryable对象。 有任何想法吗? 提前致谢?

编辑:

我只需要数据。 之后我不需要进行任何插入,更新和删除操作。 它是一个只读视图。

我不知道RadGrid,但您可以将该datareader绑定到GridView等内置网格控件。 您无法将其用于更新,删除或插入。

否则,您可以使用数据表的.Load()方法将其转换为数据表。 但是你仍然需要知道如何手动插入/更新/删除。