我使用Visual Studio 2010和C#在MVC3 ADO.NET中有一个项目。我需要保存在数据库表中的特殊报告(两列 - 报告标题和要执行的SQL脚本以返回报告)。然后,生成的报告可以显示在表格中,也可以下载为CSV文件。
我想使用EF执行SQL脚本,但我事先并不知道要返回的实体是什么,例如,将从查询返回多少字段。 “最佳”方法似乎使用了类似的东西:
var QueryResults = dataContext.ExecuteStoreQuery<object>(SQLText, String.Empty);
然后我需要使用一些反射来获取报告结构,它只是一组字符串。这感觉就像关于做事的方式,我不知道如何从返回的结果中获取字段/列名称。
如果我要使用ADO.NET SqlDataReader,那么我现在应该做什么,但这感觉就像是一个向后的步骤。
使用在运行时加载的SQL脚本的快速报告是我过去使用的一个强大功能,但我想将它带入EF时代。
有这么简单的方法吗?
答案 0 :(得分:2)
您应该使用SqlDataReader完成任务。由于查询的结果类型不正确,在此任务中使用EF没有任何优势。