【发布时间】:2016-06-24 23:54:18
【问题描述】:
我正在尝试使用 DB MySQL 映射与 dapper 的 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 时,如果你有除 Id 以外的键,请确保设置 splitOn 参数。参数名称:splitOn”
是否可以映射具有中间表 (OwnerPets) 的 N-N 关系?...如果是这样...我做错了什么?
【问题讨论】: