don't track EFCore objects that don't need to be updated
This commit is contained in:
parent
d42e73699b
commit
f7f88ff98f
24 changed files with 50 additions and 33 deletions
|
|
@ -94,7 +94,10 @@ public class MessageRepository(
|
|||
msg.Attachments.Select(a => new Attachment(a.Filename, a.Size, a.ContentType.Value))
|
||||
);
|
||||
|
||||
var dbMsg = await db.Messages.FindAsync(msg.ID.Value);
|
||||
var dbMsg = await db.Messages.FindAsync(
|
||||
new object?[] { msg.ID.Value },
|
||||
cancellationToken: ct
|
||||
);
|
||||
if (dbMsg == null)
|
||||
throw new CataloggerError(
|
||||
"Message was null despite HasProxyInfoAsync returning true"
|
||||
|
|
@ -127,7 +130,7 @@ public class MessageRepository(
|
|||
{
|
||||
_logger.Debug("Retrieving message {MessageId}", id);
|
||||
|
||||
var dbMsg = await db.Messages.FindAsync(id);
|
||||
var dbMsg = await db.Messages.AsNoTracking().FirstOrDefaultAsync(m => m.Id == id, ct);
|
||||
if (dbMsg == null)
|
||||
return null;
|
||||
|
||||
|
|
@ -159,7 +162,8 @@ public class MessageRepository(
|
|||
_logger.Debug("Checking if message {MessageId} has proxy information", id);
|
||||
|
||||
var msg = await db
|
||||
.Messages.Select(m => new { m.Id, m.OriginalId })
|
||||
.Messages.AsNoTracking()
|
||||
.Select(m => new { m.Id, m.OriginalId })
|
||||
.FirstOrDefaultAsync(m => m.Id == id);
|
||||
return (msg != null, msg?.OriginalId != null);
|
||||
}
|
||||
|
|
@ -195,7 +199,8 @@ public class MessageRepository(
|
|||
public async Task<bool> IsMessageIgnoredAsync(ulong id, CancellationToken ct = default)
|
||||
{
|
||||
_logger.Debug("Checking if message {MessageId} is ignored", id);
|
||||
return await db.IgnoredMessages.FirstOrDefaultAsync(m => m.Id == id, ct) != null;
|
||||
return await db.IgnoredMessages.AsNoTracking().FirstOrDefaultAsync(m => m.Id == id, ct)
|
||||
!= null;
|
||||
}
|
||||
|
||||
public const int MaxMessageAgeDays = 15;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue