ネストされたオブジェクトのDapperクエリの記述

dapper orm

質問

私は以下のようなコード構造を持っています:

class Person
{
    Name PersonName;
    int Age;
}

class Name
{
    string FirstName { get; set; }
    string LastName { get; set; }
}

ここでは、データベースからデータを入力するStored Procがあります。

Create Procedure SpGetAllPersons
As
Select FirstName, LastName, Age from Persons

データベースからすべてのPersonを取り出すDapperクエリを書くにはどうすればよいですか?

例:

List<Person> Persons = DbConn.Query<Person>("SpGetAllPersons", CommandType.StoredProcedure);

受け入れられた回答

ネストされたオブジェクトを選択する場合は、マルチマッパーを使用する必要があります。

これはうまくいくはずです:

List<Person> persons = DbConn.Query<Name,Person,Person>
  ("SpGetAllPersons",
     (name,person) => {person.Name = name; return person;} 
     commandType: CommandType.StoredProcedure, 
     splitOn: "Age");

マルチマッパーは、どのdbテーブルにもマップされていない集約タイプであっても、任意のタイプを返すことができます。

idまたはIdと呼ばれていないものに分割する場合は、 splitOnパラメータを指定することが重要です。



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