Próbuję odwzorować związek N-N z eleganckim użyciu jako DB MySQL. Jest to mniej więcej kod.Dapper wielu map wiele do wielu relacji
var query = new StringBuilder();
query.Append("SELECT O.Id, O.Email, O.Status, P.Name FROM Owners AS O");
query.Append(" INNER JOIN OwnerPets OP ON OP.OwnerId = O.Id");
query.Append(" INNER JOIN Pets AS P ON P.Id = OP.PetId");
query.Append(" WHERE O.Status = @Status;");
using (var dbConnection = CreateConnection())
{
return dbConnection.Query<Owner, IEnumerable<Pet>, Owner>(query.ToString(), (owner, pets) =>
{
owner.Pets = pets.ToList();
return Owner;
}, new { Status = status }, splitOn: "OwnerId, PetId");
}
Kwerenda działa dobrze w kliencie SQL ale kiedy uruchomić powyższy kod otrzymuję ten wyjątek: „. W przypadku korzystania z API multi-mapping zapewnić ustawienie param splitOn jeśli masz klucze inne niż Id Parametr nazwa: splitOn "
Czy jest możliwe nawet odwzorowanie relacji NN mającej stół pośredni (OwnerPets)? ... Jeśli tak ... co robię źle?