0
我的查询涉及多个表格,并且从我在Dapper上阅读的内容中,我只能找到一些示例,至少我知道这个示例是查询一个模型。Dapper - 查询多个模型
下面是我的模型文件夹下的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)
我总是认为这些类对应于数据库中的表,因为用户和照片是两个不同的表,我认为他们必须是不同的类。这不是这种情况吗? –
在EntityFramework中 - 是的,在Dapper中 - 没有。它只是通过名称将字段(在查询中)映射到属性(在类中) - 您应该只关心数据类型。 – Dmitry
类中的字段应直接反映select语句中返回的列。无论表格是什么,只有选择语句。 – ganders