我是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);
}
请帮忙。
答案 0 :(得分:2)
Dapper没有对你的SQL进行任何处理(好吧,在一些非常非常有限的场景中 )。因此:无论返回的是您的查询 - 它都不会更改查询以删除where
子句,并且它不会发明数据。
如果您的意思是返回的列数超出预期,那么请再次:检查您的查询。问题中显示的那个是无效的(select
中的尾随逗号),因此我无法根据问题进行评论。检查一个流氓*
。
所以:带你查询,并尝试运行它SSMS或其他SQL工具;看看哪些行和列回来了。
如果Table.id
是唯一的/主要的/身份/等等,那么获得多个似乎很奇怪,但是:我无法告诉这里发生了什么,除了:dapper是只需运行您的查询。
小点:
AsList()
优于ToList()
QuerySingle
等如果id
未修复,您可能需要使用参数,例如:
int id = ...
var res = connection.Query<Table>(
"select Images,AddressFrom, from Table where Table.id = @id", new { id }
).AsList();