我是dapper的新手,当我从连接表中检索数据时出现错误
var qry = @"SELECT Cities.Id,
Cities.Name,
Cities.Sort,
Countries.Name
FROM[dbo].[Cities]
JOIN Countries ON Countries.Id = Cities.CountryId";
var result = con.Query<Cities, Countries>(qry);
这是错误消息
'SqlConnection'不包含'Query'的定义,不包含 扩展方法'Query'接受类型的第一个参数 可以找到'SqlConnection'(你是否错过了使用指令或 汇编参考?)
答案 0 :(得分:1)
错误是由无效调用引起的 - 没有重载接受两个泛型参数。
虽然事件虽然Dapper支持多重映射,但调用实际上需要三个通用参数TFirst
,TSecond
和TReturn
(其中TReturn
可以是两者中的一个或另一个类型)。
https://github.com/StackExchange/dapper-dot-net#multi-mapping
来自文档的有效来电示例
var data = connection.Query<Post, User, Post>(sql, (post, user) => { post.Owner = user; return post;});
只有两个通用参数的无效调用会产生您收到的错误消息。
我的猜测是你想要第三个重载接受一个通用参数
Query<TResult>( string sql, Type[] types, Func<object[], TResult> map, ... );
或接受三个
的第四个 Query<TFirst, TSecond, TResult>( string sql, Func<TFirst, TSecond, TResult> map, ... );
在这两种情况下,你仍然需要一个地图功能。