2017-04-26 172 views
1

在Dapper文档中,我可以清楚地看到半简单对象或简单对象的多重映射。例如:Dapper多重映射

public class Post 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public User Owner { get; set; } 
} 

public class User 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

IDbConnection.QueryAsync<Post, User, Post>(query, (post, user) => { post.Owner = user; return post; }, new { Id = id }, null, true, "id", CommandType.Text); 

问题是如何使Dapper处理具有多个内部对象的更复杂的对象。例如:

public class PlotStemDomain 
{ 
    public int Id { get; set; } 
    ... 
    public PlotDomain Plot { get; set; } 
    public SpeciesDomain species { get; set; } 
} 

public class PlotDomain 
{ 
    public int Id { get; set; } 
    ... 
} 

public class SpeciesDomain 
{ 
    public int Id { get; set; } 
    ... 
} 

当它似乎只处理一个单一的Func<Post, User, Post>

回答

1

开箱即用Dapper的多重映射支持大约7个要映射的对象。另一种方法是使用QueryMultiple。以thread为例,它非常相似...