Как смоделировать Subsonic Dataset, который выходит из сохраненного процесса? - PullRequest
0 голосов
/ 27 июля 2011

Я ищу образцы кода для макета набора данных после сохраненного вызова процедуры с использованием Subsonic.

Вот мой метод.

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;
    }

1 Ответ

0 голосов
/ 11 августа 2011

В 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.

...