Stored procedures 亚音速3:从不同表返回混合结果的存储过程的强类型返回值

Stored procedures 亚音速3:从不同表返回混合结果的存储过程的强类型返回值,stored-procedures,subsonic3,Stored Procedures,Subsonic3,假设我有一个从两个不同的表返回数据集的存储过程。例如: SELECT Customers.FirstName, Customers.LastName, SUM(Sales.SaleAmount) AS SalesPerCustomer FROM Customers LEFT JOIN Sales ON Customers.CustomerID = Sales.CustomerID GROUP BY Customers.FirstName, Customers.LastName 是否有任何方法

假设我有一个从两个不同的表返回数据集的存储过程。例如:

SELECT Customers.FirstName, Customers.LastName, SUM(Sales.SaleAmount) AS SalesPerCustomer
FROM Customers LEFT JOIN Sales
ON Customers.CustomerID = Sales.CustomerID
GROUP BY Customers.FirstName, Customers.LastName 
是否有任何方法可以从该存储过程中获取强类型列表?大概是这样的:

StoredProcedure sp = myDevDB.GetCustomerSales();

List<MyCustomType> resultSet = sp.ExecuteTypedList<MyCustomType>();
StoredProcedure sp=myDevDB.GetCustomerSales();
List resultSet=sp.ExecuteTypedList();
如何以及在何处定义MyCustomType类?如何将其属性映射到实际的表列

谢谢,
Zohrab.

我刚刚创建了一个asp.net网页来实现这一点。试试这个:

    DataSet ds = new DataSet();
    SqlDataAdapter adtp = new SqlDataAdapter(command);
    adtp.Fill(ds);
    StringBuilder b = new StringBuilder();

    b.AppendLine("class " + this.txtSP.Text + "_QueryResult");
    b.AppendLine("{");  

    foreach ( DataColumn c in ds.Tables[0].Columns )
    {
        b.AppendLine(string.Format("property {0} {1}  {{ get; set; }}", c.DataType, c.ColumnName));
    }
    b.AppendLine("}" + Environment.NewLine);

    this.txtResult.Text = b.ToString();
}
catch { }

我刚刚创建了一个asp.net网页来实现这一点。试试这个:

    DataSet ds = new DataSet();
    SqlDataAdapter adtp = new SqlDataAdapter(command);
    adtp.Fill(ds);
    StringBuilder b = new StringBuilder();

    b.AppendLine("class " + this.txtSP.Text + "_QueryResult");
    b.AppendLine("{");  

    foreach ( DataColumn c in ds.Tables[0].Columns )
    {
        b.AppendLine(string.Format("property {0} {1}  {{ get; set; }}", c.DataType, c.ColumnName));
    }
    b.AppendLine("}" + Environment.NewLine);

    this.txtResult.Text = b.ToString();
}
catch { }