В EF Core 2 я мог обновлять и извлекать сущности в одном запросе, используя FromSql
и выдавая UPDATE-OUTPUT
запрос.
Выглядело это примерно так:
return await _baseDbContext.MyEntity
.FromSql($@"UPDATE {_baseDbContext.SchemaName}.MyEntity
SET STATUS = ""InProgress"",
UpdatedAt = SYSDATETIMEOFFSET()
OUTPUT
INSERTED.Id, INSERTED.Name,
INSERTED.Status, INSERTED.Deleted, INSERTED.CreatedAt, INSERTED.CreatedBy, INSERTED.CreatedByUserId,
INSERTED.UpdatedAt, INSERTED.UpdatedBy, INSERTED.UpdatedByUserId, INSERTED.Version
FROM { _baseDbContext.SchemaName}.MyEntity le
WHERE le.Status = ""Failed""")
.ToListAsync(cancellationToken);
Теперь, после обновления до EF Core 3, он жалуется, что
«FromSqlRaw или FromSqlInterpolated был вызван с несоставным SQL и запросом, составляющим его. Рассмотрите возможность вызова
AsEnumerable
после метода FromSqlRaw или FromSqlInterpolated для выполнения композиции на стороне клиента.
Я могу выполнить FromSqlRaw
или FromSqlInterpolated
, если просто введу SELECT
запрос.
EF core 3 больше не поддерживает UPDATE-OUTPUT
запросы?