2010-07-14 70 views
0

說我有一個存儲過程,它從2個不同的表中返回dataSet。例如:亞音速3:返回存儲過程的強類型返回值,返回不同表中的混合結果

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

如何以及在哪裏定義MyCustomType類?我如何將其屬性映射到實際的表格列?

謝謝, Zohrab。

回答

3

我剛剛創建了一個這樣做的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 { }