Dapper - 查询多个模型

时间:2017-02-19 05:12:08

标签: asp.net-core-mvc dapper

我的查询涉及多个表,从我在Dapper上读到的内容,我只能找到至少我理解的示例,即查询一个模型。

以下是Models文件夹下的3个类:

public class User
{
    public string UserName { get; set; }
    public string UserId { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
}

public class Date
{
    public string UserName { get; set; }
    public string UserCode { get; set; }
    public string LastLogin { get; set; }
}

public class Photo
{
    public class UserName { get; set; }
    public string UserId { get; set; }
    public string PhotoUrl { get; set; }
}

在我的存储库中,我有连接代码,然后是获取所需信息的方法,但是此方法仅与User模型绑定,但我还需要检索照片,当我尝试创建一个复合类,以便我可以在视图中使用UserPhoto模型,它给出了一个错误,说它只需要User DataView。

public List<User> GetAll()
{
    using (SqlConnection cn = new SqlConnection(connectionString))
    {
        var allResults = cn.Query<User>("SELECT UserName, Email, Phone, (SELECT TOP 1 PhotoPath FROM Photo WHERE User.UserId = Photo.UserId) FROM User)

1 个答案:

答案 0 :(得分:1)

您的User课程不包含PhotoPath等属性 - 您希望Dapper在哪里投放新的/附加值?

您应该创建新类(例如ViewModels/UserAndPhoto.cs),其中包含您选择的所有属性 - 然后Dapper将成功从数据库中读取它。