我正在尝试使用Dapper在MySQL数据库中映射N-N关系。以下是大致的代码:
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");
}
在SQL客户端中,查询可以正常工作,但是当我运行上面的代码时,会出现以下异常:"使用多重映射API时,请确保设置splitOn参数(如果您有除Id之外的键)。参数名称:splitOn"
是否可能映射一个具有中间表(OwnerPets)的N-N关系?如果可以,那么我做错了什么?