I have one row coming from the database
select "John" Name,
"Male" Gender,
20 Age,
"Rex" PetName,
"Male" PetGender,
5 PetAge
// ... many more ...
Using Dapper, I'd like to pull this row into two objects:
class Person
{
public string Name { get; set; }
public string Gender { get; set; }
public int Age { get; set; }
// ... many more ...
}
class Pet
{
public string PetName { get; set; }
public string PetGender { get; set; }
public int PetAge { get; set; }
// ... many more ...
}
Note: there is no hierarchical relationship here, I'm simply trying to map one database row into two (or more) objects.
How can I do this using dapper?
- I know I can do this by returning a dynamic and mapping each object manually, which is painful as in my scenario we have a large number of columns. I'd rather not do this. (And no, it can't be redesigned to require less columns.)
What I've tried:
- I've looked into
QueryMultiple<Person,Pet>
, but it assumes I am running multiple queries. In my real-life scenario, this is a very expensive query, and I'd like to just run it once. - I've also looked into returning
Query<Person,Pet,Tuple<Person,Pet>>
, but this requires anId
column, here there's no hierearchical relationship orId
s. I just want to take a single row and map it to multiple columns.