Entity - AllSalesTerritory
contains List<MySalesPerson>
representing one to many relationship. I have Sql
query to fetch the data where the two entities are mapped using a column TerritoryId
. I use a following code to fill the entity using Dapper micro ORM
:
List<AllSalesTerritory> allSalesTerrotories = _connection.Query<AllSalesTerritory, MySalesPerson, AllSalesTerritory>
(query, (pd, pp) =>
{
pd.SalesPersons.Add(pp);
return pd;
}, splitOn: "BusinessEntityId")
.ToList();
BusinessEntityId
is the beginning column for SalesPerson entity on executing the Sql statement
Challenge that I face is, this kind of code helps in easily filling one to one relation, here I get just one value in each List<MySalesPerson>
, instead of aggregating those values in the collection, essentially the same result as that of SQL join query. I can easily resolve the issue using a simple foreach
loop and aggregating the values for MySalesPerson
. However, I want to figure out:
- Can Dapper automatically help me achieve it, tried few extensions, but they did not work as expected
- Can a Linq code do it for me, since this is somewhat reverse of a
SelectMany
on an entity with one to many relationship