2012-02-29 1 views
0

Dapperでこのオブジェクトを取得するにはどうすればよいですか?例えば :複数のクラスをdapperで照合する

public class ClassA 
{ 
    public int Id { get; set; } 
    public string Text { get; set; } 
    public ClassB b { get; set; } 
    public ClassC c { get; set; } 
    public ClassD d { get; set; } 
    public ClassE e { get; set; } 
    public ClassF f { get; set; } 
} 

public class ClassB 
{ 
    public int Id {get; set;} 
    public string Text {get; set;} 
} 
    ... 

public class ClassF 
{ 
    public int Id {get; set;} 
    public string Text {get; set;} 
} 

Iはconnection.Query<ClassA, ClassB, ClassC, ClassD, ClassE, ClassF, ClassA>(sql, ...)を使用するが、Dapperのが唯一最大5つの引数でマルチマッピングを可能にします。

ありがとうございました

+3

コードを変更することを検討しましたか? –

+0

これは、例えばクラスです。私のプロジェクトでは、より多くの機能を持つクラスを使用しています。テキストコンテナだけでなく、 –

答えて

0

最後に、私はメインクラスに必要なフィールドを移動します。

public class ClassA 
{ 
    public int Id { get; set; } 

    public string Text { get; set; } 

    public string TextB { get; set; } 

    public string TextC{ get; set; } 

    public string TextD{ get; set; } 
} 



    using (var sqlConnection = new SqlConnection(connStr)) 
       { 
        OpenConnection(sqlConnection); 
        string sql = @"select a.id 'Id', a.text 'Text', b.text 'TextB', c.text 'TextC', d.text 'TextD' 
            from tableA a inner join tableB b on a.idB = b.id inner join tableC c on a.idC = c.id 
             inner join tableD d on a.idD = d.id"; 
        var rows = sqlConnection.Query<ClassA>(sql).ToList(); 
        return rows.ToList(); 
       } 
関連する問題