【问题标题】:How to easily convert a DbDataReader object into something useful?如何轻松地将 DbDataReader 对象转换为有用的东西?
【发布时间】:2009-03-27 15:46:53
【问题描述】:

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

编辑:

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

【问题讨论】:

    标签: c# entity-framework datareader dbdatareader


    【解决方案1】:

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

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

    【讨论】:

    • 感谢 table.Load(reader);就是我要找的。我会告诉你进展如何...
    • 是的,这正是我所需要的。谢谢乔尔!
    猜你喜欢
    • 2016-04-12
    • 1970-01-01
    • 2011-06-19
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2010-09-24
    相关资源
    最近更新 更多