使用Dapper一张表映射到嵌套对象

时间:2019-06-06 14:13:49

标签: c# dapper

我有一个包含以下列的表:

|用户名|用户名|排序代码|帐号|

我有以下C#类

    public class User
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public Account Account { get; set; }
}

public class Account
{
    public string SortCode { get; set; }
    public string AccountNumber { get; set; }
}

我需要将SortCode列映射到Account.SortCode对象。与AccountNumber相同。

我正在尝试类似的事情

 const string query = @"SELECT UserId, UserName, SortCode AS [Account.SortCode], AccountNumber AS [Account.AccountNumber], FROM [dbo].[Users];";

 return db.Query<User>(query);

但是不起作用。 有帮助吗?。

谢谢!

1 个答案:

答案 0 :(得分:0)

在@Amy的评论之后,这成功了:

    const string query = @"SELECT * FROM [dbo].[Users];";

    return db.Query<User, Account, User>(query, (user, account) => 
    {
       user.Account = account;
       return user;
    }, splitOn: "UserId");

谢谢!