protected override Task <IEnumerable <RelationshipEntityInstanceIdentity <TMainEntity> > > QueryAsync(
            IDbConnection connection,
            string statement,
            string splitOnCondition,
            object parameters,
            bool buffered,
            IDbTransaction transaction,
            int?commandTimeout,
            RelationshipEntityInstanceBuilder relationshipInstanceBuilder)
        {
            return(connection.QueryAsync <TMainEntity, TFirstJoinedEntity, TSecondJoinedEntity, TThirdJoinedEntity, TFourthJoinedEntity, RelationshipEntityInstanceIdentity <TMainEntity> >(
                       statement,
                       (mainEntity, firstJoinedEntity, secondJoinedEntity, thirdJoinedEntity, fourthJoinedEntity) =>
            {
                var mainEntityIdentity = relationshipInstanceBuilder.RegisterResultSetRowInstance(mainEntity);
                relationshipInstanceBuilder.RegisterResultSetRowInstance(firstJoinedEntity);
                relationshipInstanceBuilder.RegisterResultSetRowInstance(secondJoinedEntity);
                relationshipInstanceBuilder.RegisterResultSetRowInstance(thirdJoinedEntity);
                relationshipInstanceBuilder.RegisterResultSetRowInstance(fourthJoinedEntity);
                relationshipInstanceBuilder.EndResultSetRow();

                return mainEntityIdentity;
            },
                       parameters,
                       buffered: buffered,
                       splitOn: splitOnCondition,
                       transaction: transaction,
                       commandTimeout: commandTimeout));
        }
Esempio n. 2
0
        protected override IEnumerable <TMainEntity> Query(
            IDbConnection connection,
            string statement,
            string splitOnCondition,
            object parameters,
            bool buffered,
            IDbTransaction transaction,
            int?commandTimeout,
            RelationshipEntityInstanceBuilder relationshipInstanceBuilder)
        {
            return(connection.Query <TMainEntity, TFirstJoinedEntity, TMainEntity>(
                       statement,
                       (mainEntity, joinedEntity) =>
            {
                relationshipInstanceBuilder.RegisterResultSetRowInstance(ref mainEntity);
                relationshipInstanceBuilder.RegisterResultSetRowInstance(ref joinedEntity);
                relationshipInstanceBuilder.EndResultSetRow();

                return mainEntity;
            },
                       parameters,
                       buffered: buffered,
                       splitOn: splitOnCondition,
                       transaction: transaction,
                       commandTimeout: commandTimeout));
        }