首页 > 解决方案 > 使用 Dapper 将单个 ResultSet 绑定到多个类

问题描述

我有多个类,我在不同的部分页面中使用它们。我使用 Dapper 进行 SQL 连接。从 DB 我得到具有所有属性的单个结果集。

如何将数据绑定到多个类?有没有机会得到这份工作?或者我需要创建一个包含所有属性的类?

我的模型:

public class Class1{
     public int prop1 {get;set;}
     public int prop2 {get;set;}
}

public class Class2{
     public int prop3 {get;set;}
     public int prop4 {get;set;}
}
public class Class3{
     public int prop5 {get;set;}
     public int prop6 {get;set;}
}

来自数据库的结果集:

PrimarykeyCol  prop1 prop2  prop3  prop4  prop5  prop6

标签: asp.net-mvcdapper

解决方案


如果我理解正确,这三个类之间没有关系。通常多重映射包括关系。为了使多查询工作,您需要一个返回类型,所以我肯定会为这三个类声明一个包装器,如下所示:

public class Wrapper
{
    public Class1 Class1 {get;set;}
    public Class2 Class2 {get;set;}
    public Class3 Class3 {get;set;}
}

var resultList = conn.Query<Class1, Class2, Class3, Wrapper>(query, 
                 (c1, c2, c3) => {
                     return new Wrapper {Class1=c1, Class2=c2, Class3=c3};
                 },
                 splitOn: "prop3,prop5"
                 ).AsQueryable();

推荐阅读