2017-07-28 38 views
1

我与小巧玲珑的一个新手,我复制这个SQL脚本(从一个测试,我与实体框架做),并试图返回论文行的名单,但其返回整个类而不仅仅是我想要的!小巧玲珑没有返回选择/所需的行

using (IDbConnection connection = new SqlConnection(@"Data Source=DESKTOP-CD2UQI5\SQLEXPRESS;Initial Catalog=ServerContext;Integrated Security=True")) 
     { 
      var res = connection.Query<Table>("select Images,AddressFrom, from Table where Table.id = 1").ToList(); 
      response = Request.CreateResponse(HttpStatusCode.OK, res); 
     } 

请帮助。

+0

_entire Class_是什么意思? –

+0

显示的查询是无效的......所以我100%肯定这不是真正显示问题的指示性代码,因为这可能只会抛出一个'SqlException'(从数据库服务器,与精灵无关) –

回答

1

Dapper不会对您的SQL进行任何处理(在某些非常有限的情况下,它会对)。所以:无论被返回是因为查询 - 这是不会改变的查询删除where条款,并没有发明了数据。

如果你的意思是它返回低于预期,然后再列:检查您的查询。在提问中显示的一个无效(尾随在select逗号),所以我真的不能评论基于这个问题。检查一个流氓*

所以说:把你的查询,并尝试运行它SSMS或其他SQL工具;查看哪些行和列回来。

如果Table.id是一个独特的/主要/身份/ etc,那么是,似乎很奇怪获得多个,但:我不知道从这里发生了什么,除了:dapper只是运行您的查询。

小点:如果你希望只有一个或最多一个结果

  • AsList()最好将ToList()
  • ,有一些方法来做到这一点更有效地 - QuerySingle
  • 如果id不固定,您可能想要使用参数,例如:

    int id = ... 
    var res = connection.Query<Table>(
        "select Images,AddressFrom, from Table where Table.id = @id", new { id } 
    ).AsList(); 
    
+0

我图什么的问题是,我仍然使用的EntityFramework类为'查询

'。不管sql脚本,只是一个部分代码,只是为了查看可能是错误的,因为我说过,我在SQL服务器上做了同样的查询!谢谢! –