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