使用Dapper将单个ResultSet绑定到多个类

问题描述

我有多个类,可在不同的部分页面中使用。我使用Dapper进行sql连接。从数据库中,我得到具有所有属性的单个结果集。

如何将数据绑定到多个类?有机会进行这项工作吗?还是我需要创建一个具有所有属性的类?

我的模特:

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

解决方法

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

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();