SQLクエリをIListに変換する Dapperを使って

c#-4.0 dapper sql sql-server visual-studio-2012

質問

私はVS2012SQL Server 2012SQL Server 2012

DapperVS2012にこのように追加します

ここに画像の説明を入力

私はこのようなクラスを1つ持っています:

    public class DomainClass
    {
        public SexEnum sex { get; set; }
        public int Id { get; set; }
        public string Name { get; set; }
    }

    enum SexEnum
    {
        Men = 0, Women = 1
    }

私はテーブルATestと私はこのようなクエリがあります:

Select * From ATest

どのように私はこのクエリを実行し、Dapper IList of DomainClass私の結果を変換することができますか?

受け入れられた回答

public static IList<DomainClass> GetAllDomains()
{
    using (var con = new SqlConnection(Properties.Settings.Default.YourConnection))
    {
        const String sql = "Select sex, Id, Name  From ATest ORDER BY Name ASC;";
        con.Open();
        IList<DomainClass> domains = con.Query<DomainClass>(sql).ToList();
        return domains;
    }
}

人気のある回答

私はこの静的なクラスとこの拡張メソッドを書いています:

/// <summary>
/// Put this Class in your project 
/// and use ConvertSqlQueryToIList extension method on SqlConnection object.
/// </summary>
public static class Convert
{

    public static IList<T> ConvertSqlQueryToIList<T>(
                                           this SqlConnection sqlConn, 
                                           T domainClass, 
                                           string sqlQueryCommand
                                                            )
    {
        ConnectionState connectionState = ConnectionState.Closed;
        try
        {

            if (sqlConn.State != ConnectionState.Open)
            {
                sqlConn.Open();
                connectionState = sqlConn.State;
            }

            IList<T> result = sqlConn.Query<T>(sqlQueryCommand).ToList();

            return result;
        }
        catch (Exception exception)
        {

            throw exception;
        }
        finally
        {
            if (connectionState == ConnectionState.Closed)
                sqlConn.Close();
        }
    }

}

そして、私はDapperがintフィールドをEnumプロパティに変換することをお勧めします。

私の質問の中でセックスのようなものです。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ