我是Dapper的新手,我复制了这个SQL脚本(来自我正在使用Entity Framework进行的测试)并尝试返回这些行的列表,但它返回整个类而不仅仅是我想要的那些!
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);
}
请帮忙。
小巧玲珑不会做你的SQL的任何处理(当然, 它在一些非常非常有限的情况下)。所以:返回的是由于你的查询 - 它没有改变查询来删除where
子句,也没有发明数据。
如果您的意思是返回的列数超出预期,则再次:检查您的查询。问题中显示的那个是无效的( select
尾随逗号),所以我无法根据问题进行真正的评论。检查一个流氓*
。
所以:带你查询,并尝试运行它SSMS或其他SQL工具;查看哪些行和列返回。
如果Table.id
是唯一的/ primary / identity / 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();