我使用Dapper,尝试创建内连接的自动映射方法。
以下是模型示例:
public class User
{
public long IdUser { get; set; }
public string Email { get; set; }
}
public class Page
{
public long Id { get; set; }
public string Name { get; set; }
public long IdUserCreatedPage { get; set; }
public User UserCreatedPage { get; set; }
}
这是查询:
SELECT * FROM "PAGE" INNER JOIN "USER" ON "PAGE"."IdUserCreatedPage" = "USER"."IdUser"
如果我手写代码,我会写成这样:
public List<Page> GetPage(IDbConnection dbConnection, string sql)
{
return (List<Page>)dbConnection.Query<Page, User, Page>(sql,
(Page p, User u) =>
{
p.UserCreatedPage = u;
return p;
},
splitOn: "IdUser").ToList();
}
现在,我想要的是动态创建我需要用于映射对象的
Func<TFirst, TSecond, TOut>
。
有人能帮助我吗?非常感谢。
P.S. 我知道在这种情况下动态创建它没有意义,但这只是自动映射项目的简单版本。