与Dapper一起玩,我对目前为止的结果感到非常满意 - 耐人寻味!无法在Dapper中使用多重映射工作
但是现在,我的下一个场景是从两个表中读取数据 - 一个Student
和一个Address
表。
Student
表的主键为StudentID (INT IDENTITY)
,Address
有AddressID (INT IDENTITY)
。 Student
也有一个名为AddressID
的FK链接到Address
表中。
我的想法是创建两个类,每个表一个,与我感兴趣的特性。此外,我把Address
类型的PrimaryAddress
财产到我Student
类在C#。
然后我想在一个单一的查询检索学生和地址数据 - 我模拟天生是对的Github page给出的示例:
var data = connection.Query<Post, User>(sql, (post, user) => { post.Owner = user; });
var post = data.First();
这里,Post
和User
检索和所有者该帖子设置为用户 - 返回的类型是Post
- 正确吗?
所以,在我的代码,我定义了两个参数,通用Query
扩展方法 - 一个Student
作为第一个应当返还和Address
为第二,这将被存储到学生实例:
var student = _conn.Query<Student, Address>
("SELECT s.*, a.* FROM dbo.Student s
INNER JOIN dbo.Address a ON s.AddressID = a.AddressID
WHERE s.StudentenID = @Id",
(stu, adr) => { stu.PrimaryAddress = adr; },
new { Id = 4711 });
麻烦的是 - 我得到在Visual Studio中的错误:
使用泛型方法 “Dapper.SqlMapper.Query(System.Data.IDbConnection, 串, System.Func, 动态,System.Data.IDbTransaction, 布尔,字符串,整数? System.Data.CommandType?)”要求6个 类型参数
我真的不明白为什么小巧玲珑坚持使用这种过载与6种类型的参数...
我有完全一样的问题,我花了一段时间来弄清楚为什么 - 萨姆解释! – 2011-05-14 13:35:09