Я создаю запрос Dapper с объединением 8 таблиц, но, очевидно, Dapper SqlMapper
поддерживает только 7.
В этой статье я читал, что существует перегрузка, которая принимает n типов:
public static IEnumerable<TReturn> Query<TReturn>(this IDbConnection cnn,
string sql,
Type[] types,
Func<object[], TReturn> map,
object param = null,
IDbTransaction transaction = null,
bool buffered = true,
string splitOn = "Id",
int? commandTimeout = null,
CommandType? commandType = null)
Может ли кто-нибудь дать мне простой пример того, как его использовать?
Это то, что я использовал ранее для присоединения к меньшему количеству таблиц:
var sql = @"SELECT * FROM dbo.ComponentRelationship cr
JOIN dbo.ComponentRelationshipType crt ON crt.ComponentRelationshipTypeId = cr.ComponentRelationshipTypeId
JOIN dbo.Application fa ON fa.ApplicationId = cr.FromId
JOIN dbo.Application ta ON ta.ApplicationId = cr.ToId
ORDER BY fa.Name, ta.Name";
result = connection.Query<ComponentRelationship, ComponentRelationshipType, Application, Application, ComponentRelationship>(sql,
(cr, crt, fa, ft) =>
{
cr.ComponentRelationshipTypeName = crt.Name;
cr.FromName = fa.Name;
cr.ToName = ft.Name;
return cr;
}, splitOn: "ComponentRelationshipId,ComponentRelationshipTypeId,ApplicationId,ApplicationId");