首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何执行Entity Framework不支持查询并获取返回数据

如何执行Entity Framework不支持查询并获取返回数据
EN

Stack Overflow用户
提问于 2013-05-28 17:57:21
回答 2查看 2.2K关注 0票数 1

我正在使用VS2010、C#、ExcelFramework4 (DB provider Microsoft SQL Server2008 R2)为.Net编写一个外接程序。其主要思想是让用户对数据库执行预定义的查询,以便将数据提取到Excel中。

假设我将硬编码的查询存储在数据库的表查询中。因此,我可以使用Entity Framework来实现表查询。表中列出的这些查询可以返回从单个值到多个记录的任何值。

我对实体框架一无所知。现在,我读到可以直接对数据库here执行T-SQL。这很有用,但我很难找回结果。

代码语言:javascript
运行
复制
using (SYMNHM_DEVEntities dataContext = new SYMNHM_DEVEntities())
        {

            var query = "Select [Query Name] from [SYM XLS Queries] where [Query ID] = 2";
            str = dataContext.ExecuteStoreCommand(query) + "";

        }

这会得到-1的结果,然后粗略地将其转换为字符串。好吧,我知道这不是很好的编码,但只需将其视为一个示例。如何获取返回的实际查询名称?

在本例中,它只是一个值,但是如果查询返回更多的值(我甚至可能不知道它是否是字符串),我该如何创建适当的返回类型呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-30 19:29:11

以下是关于字符串的简单示例的答案:

代码语言:javascript
运行
复制
using (MyEntities dataContext = new MyEntities())
    {
      var query = (from q in dataContext.Queries
                     where q.Query_Name == queryName
                     select q.Query).Single();



      queryResults = dataContext.ExecuteStoreQuery<string>(query);
      List<string> list = new List<string>(queryResults.ToArray<string>());
      return list; }

我还没有用其他类型替换string类型的解决方案,尽管我正在研究如果查询将有多个字符串结果,则返回Datatable的问题。

票数 1
EN

Stack Overflow用户

发布于 2013-05-28 18:44:40

直接使用SQL命令不是一个好方法,为什么不使用LINQ呢?在您的示例中,您可以使用:

代码语言:javascript
运行
复制
var result = (from q in dataContext.SYMXLSQueries
             where q.ID == 2
             select q.QueryName).ToArray();

这将返回一个字符串数组(如果QueryName是一个varchar...)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16789126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档