optimization sql

This commit is contained in:
Artemy
2025-07-01 15:05:49 +07:00
parent 5883f3e340
commit cdae63b223
10 changed files with 81 additions and 58 deletions
@@ -22,6 +22,7 @@ public class MessagesRepository : IMessagesRepository
return await _context.Messages
.AsNoTracking()
.Include(m => m.ReplyToMessage)
.AsSplitQuery()
.ToListOrThrowIfEmpty(new NotFoundException("No messages found in the database"));
}
@@ -30,6 +31,7 @@ public class MessagesRepository : IMessagesRepository
return await _context.Messages
.AsNoTracking()
.Include(m => m.ReplyToMessage)
.AsSplitQuery()
.FirstOrDefaultAsync(m => m.Id == messageId)
?? throw new NotFoundByKeyException<Guid>(messageId, "Message with given id does not exist");
}
@@ -39,6 +41,7 @@ public class MessagesRepository : IMessagesRepository
return await _context.Messages
.AsNoTracking()
.Include(m => m.ReplyToMessage)
.AsSplitQuery()
.Where(m => m.SenderId == senderId)
.ToListOrThrowIfEmpty(new NotFoundByKeyException<Guid>(senderId, "Messages with given sender id do not exist"));
}
@@ -48,6 +51,7 @@ public class MessagesRepository : IMessagesRepository
return await _context.Messages
.AsNoTracking()
.Include(m => m.ReplyToMessage)
.AsSplitQuery()
.Where(m => m.RecipientId == receiverId)
.ToListOrThrowIfEmpty(new NotFoundByKeyException<Guid>(receiverId, "Messages with given recipient id do not exist"));
}
@@ -57,6 +61,7 @@ public class MessagesRepository : IMessagesRepository
return await _context.Messages
.AsNoTracking()
.Include(m => m.ReplyToMessage)
.AsSplitQuery()
.Where(m => m.SenderId == senderId
&& m.RecipientId == receiverId
&& m.RecipientType == recipientType)
@@ -68,6 +73,7 @@ public class MessagesRepository : IMessagesRepository
return await _context.Messages
.AsNoTracking()
.Include(m => m.ReplyToMessage)
.AsSplitQuery()
.Where(m => m.SentAt == date)
.ToListOrThrowIfEmpty(new NotFoundByKeyException<DateTime>(date, "Messages sent at date do not exist"));
}
@@ -116,11 +122,7 @@ public class MessagesRepository : IMessagesRepository
);
if (rowsAffected == 0)
throw new NotFoundByKeyException<Guid>(message.Id);
}
catch (NotFoundByKeyException<Guid> ex)
{
throw new UpdateException($"Not found message by given id {message.Id}", ex);
throw new UpdateException($"Not found message by given id {message.Id}");
}
catch (Exception ex)
{