2011-07-27 18 views
0

我正在尋找代碼樣本來模擬數據集後存儲proc呼叫使用亞音速。如何模擬來自存儲過程的亞音速數據集?

這是我的方法。

public List<DistributionDetail> GetDistributionsForInvoice(string invoiceId) 
    { 
     List<DistributionDetail> result = new List<DistributionDetail>(); 
     StoredProcedure sp = new StoredProcedure("GetDistributions", this.dataProvider); 
     sp.Command.AddParameter("InvoiceID", invoiceId, DbType.String, ParameterDirection.Input); 

     DataTable dt = sp.ExecuteDataSet().Tables[0]; 
     foreach (DataRow dr in dt.Rows) 
     { 
      DistributionDetail d = new DistributionDetail(); 
      DateTime date   = Convert.ToDateTime(dr[2].ToString()); 
      d.DistributionId  = dr[0].ToString(); 
      d.DistributionAmount = Convert.ToDouble(dr[1].ToString()); 
      d.DepositDate   = date.ToString(ApplicationConstants.DateFormat); 
      d.LockboxNumber   = dr[3].ToString(); 
      d.BatchNumber   = dr[4].ToString(); 
      d.TransactionNumber  = dr[5].ToString(); 

      result.Add(d); 
     } 
     return result; 
    } 
+0

「模擬數據集」是什麼意思? –

回答

0

在SubSonic 2.2中,您可以撥打ExecuteTypedList

public List<DistributionDetail> GetDistributionsForInvoice(string invoiceId) 
{ 
    List<DistributionDetail> result = new List<DistributionDetail>(); 
    StoredProcedure sp = new StoredProcedure("GetDistributions", this.dataProvider); 
    sp.Command.AddParameter("InvoiceID", invoiceId, DbType.String, ParameterDirection.Input); 

    return sp.ExecuteTypedList<DistributionDetail>(); 
} 

存儲過程結果集中的列名必須與DistributionDetail上的屬性名匹配。