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

时间:2009-03-27 15:46:53

标签: c# entity-framework datareader 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的有用的东西?我一直在DAL方法中传递单个对象或IQueryable对象。有任何想法吗?提前谢谢?

修改

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

1 个答案:

答案 0 :(得分:1)

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

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