Dapper simple mapping

c#, dapper, orm, sql-server

Solution

Example taken from dapper project page (see the Multi Mapping section):

var sql = 
@"select * from #Posts p 
left join #Users u on u.Id = p.OwnerId 
Order by p.Id";

var data = connection.Query<Post, User, Post>(sql, (post, user) => { post.Owner = user; return post;});
var post = data.First();

post.Content.IsEqualTo("Sams Post1");
post.Id.IsEqualTo(1);
post.Owner.Name.IsEqualTo("Sam");
post.Owner.Id.IsEqualTo(99);

Problem

Table: ``` create table Documents (Id int, SomeText varchar(100), CustomerId int, CustomerName varchar(100) ) insert into Documents (Id, SomeText, CustomerId, CustomerName) select 1, '1', 1, 'Name1' union all select 2, '2', 2, 'Name2' ``` Classes: ``` public class Document { public int Id { get; set; } public string SomeText { get; set; } public Customer { get; set; } } public class Customer { public int Id { get; set; } public string Name { get; set; } } ``` How can I get all `Documents` with their `Customers` with Dapper? This gives me all documents, but the customer is null (of course): ``` connection.Query<Document>("select Id, SomeText, CustomerId, CustomerName from Documents")... ``` EDIT - similar, but more advanced mapping question: Dapper intermediate mapping

Original source

Related problems