猿教程 Logo

Dapper-多个类型结果

描述

ExecuteReader方法是可以从IDbConnection类型的任何对象调用的扩展方法。 它可以执行查询并将结果映射到不同类型的列表。

string sql = "SELECT * FROM Invoice;";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var invoices = new List<Invoice>();
    using (var reader = connection.ExecuteReader(sql))
    {
        var storeInvoiceParser = reader.GetRowParser<StoreInvoice>();
        var webInvoiceParser = reader.GetRowParser<WebInvoice>();
        while (reader.Read())
        {
            Invoice invoice;
            switch ((InvoiceKind) reader.GetInt32(reader.GetOrdinal("Kind")))
            {
                case InvoiceKind.StoreInvoice:
                    invoice = storeInvoiceParser(reader);
                    break;
                case InvoiceKind.WebInvoice:
                    invoice = webInvoiceParser(reader);
                    break;
                default:
                    throw new Exception(ExceptionMessage.GeneralException);
            }
            invoices.Add(invoice);
        }
    }
}



版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Dapper/result-multi-type.html