Mehrere aktive DB -Operationen während der Wartezeit von dbset.asasyncenumerable () Schleife im selben Kontext zulässig?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Mehrere aktive DB -Operationen während der Wartezeit von dbset.asasyncenumerable () Schleife im selben Kontext zulässig?

Post by Anonymous »

Diene ich Savechanges während einer aktiven Schleife über iAsyncenumerable aus dbset ? Die gleiche Kontextinstanz wird nicht unterstützt. P> Aber ich bin mir nicht sicher, ob ein offener iAsyncenumerable Schleife als aktiver Operation zählt.

muss ich einen anderen DBContext verwenden, um den Statusmarker zu speichern? < /p>

Code: Select all

while(!cancellationToken.IsCancellationRequested)
{
await using var scope = serviceScopeFactory.CreateAsyncScope();
var db = scope.ServiceProvider.GetRequiredService();

await foreach(var o in db.Orders
.Where(o => o.Status != 1) // and some other conditions
.AsAsyncEnumerable()
.WithCancellation(cancellationToken)
.ConfigureAwait(false))
{
o.Status = 1;
await db.SaveChangesAsync(cancellationToken);
// run fire and forget async work once
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post