我的查询涉及多个表,从我在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
模型绑定,但我还需要检索照片,当我尝试创建一个复合类,以便我可以在视图中使用User
和Photo
模型,它给出了一个错误,说它只需要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)
答案 0 :(得分:1)
您的User
课程不包含PhotoPath
等属性 - 您希望Dapper在哪里投放新的/附加值?
您应该创建新类(例如ViewModels/UserAndPhoto.cs
),其中包含您选择的所有属性 - 然后Dapper将成功从数据库中读取它。