Может ли Dapper загружать результаты Multi-Mapping при использовании таблицы соединения?
У меня есть объект приложения, который имеет много объектов подключения. Это хорошо в мире.Net, но, к сожалению, объединение управляется через таблицу соединений с составным ключом. Можно ли отобразить это в dapper, используя подход с несколькими сопоставлениями?
На данный момент я просто использую два отдельных SQL-оператора, но они мне не подходят (со стороны EF). Вот код, который я пробовал, но не смог добраться до работы...
public class Application
{
public int ApplicationID { get; set; }
public string Name { get; set; }
public string Prefix { get; set; }
public List<Connection> Connections { get; set; }
}
public class ApplicationConnection
{
public int ApplicationID { get; set; }
public int ConnectionID { get; set; }
}
public class Connection
{
public int ConnectionID { get; set; }
public string ConnectionString { get; set; }
}
var tsql = @"SELECT A.*,C.*
FROM [Application] A
INNER JOIN [ApplicationConnections] AC on A.ApplicationID = AC.ApplicationID
INNER JOIN [Connections] C ON AC.ConnectionID = C.ConnectionID
WHERE A.ApplicationID = 122";
var results = connection.Query<Application, List<Connection>, Application>(tsql,
(appl, conn) => {
appl.Connections = conn; return appl;
},
splitOn: "ApplicationID,ConnectionID").First();
Ошибка, которую я продолжаю получать, - это ошибка "use splitOn", но я уверен, что это только верхушка айсберга. Если у кого-то есть идеи, я весь в ушах.