0

我正在使用实体框架 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 对象。有任何想法吗?提前致谢?

编辑:

我只需要数据。之后我不需要做任何插入、更新、删除。它是一个只读视图。

4

1 回答 1

1

我不了解 RadGrid,但您可以将该数据读取器绑定到内置网格控件,如 GridView。您只是不能将其用于更新、删除或插入。

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

于 2009-03-27T15:51:15.703 回答