【发布时间】:2018-10-10 09:27:18
【问题描述】:
我与 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>。
有人能帮我吗?非常感谢。
附:我知道在这种情况下,动态创建它是没有意义的,但这只是所有自动映射项目的简单版本。
【问题讨论】:
-
这是一个问答网站。如果您已解决,请添加并接受答案。将 [SOLVED] 放在论坛网站标题中的做法是因为这些网站不是为寻找问题的答案而设计的,就像这个网站一样。
-
@JonHanna 好的,我做到了!
标签: c# linq lambda expression func