Yep, only being called once via abp.services.app.xxx AppService gets only one object from input, and loops only once and inserts 3.
Edit -- sorry it is in a for loop and the input is only one object being passed in, will update the original post too.
foreach (var resInput in input.ResLinks)
{
var res = new ResLinkDto
{
TenantId = AbpSession.TenantId.Value,
ModelOneId = resInput.modelOneId,
ModelTwoId = resInput.modelTwoId,
ModelThreeId = resInput.modelThreeId.
};
await _resLinkRepository.InsertAsync(ObjectMapper.Map<ResLink>(res));
}