9

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

class Person
{
    Name PersonName;
    int Age;
}

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

これが、データベースからデータを取り込むストアドプロシージャです。

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

データベースからすべてのPersonをプルするDapperクエリを作成するにはどうすればよいですか?

例:

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

4

1 に答える 1

8

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

これは機能するはずです:

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

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

またはsplitOnと呼ばれないもので分割する場合は、paramを指定することが重要です。idId

于 2011-05-26T06:46:01.940 に答える