Для базы данных с высокой активностью вы можете столкнуться с проблемами, когда ваши обновления влияют на активное изменение записей, и по этой причине я рекомендую использовать snapshot ()
db.person.find().snapshot().forEach( function (hombre) {
hombre.name = hombre.firstName + ' ' + hombre.lastName;
db.person.save(hombre);
});
http: // docs .mongodb.org / ручной / ссылки / метод / cursor.snapshot /
Вы должны добавить его пространство имен, которое включено в EntityFramework.dll
.
Пожалуйста, найдите его здесь .
Вам нужно использовать выражение, а не функцию.
Итак:
public async Task<IEnumerable<TEntity>> Where(Expression<Func<TEntity, bool>> predicate)
{
var tmp = await this.DbSet.Where(predicate).ToListAsync();
return tmp;
}
Func<TEntity, bool>
ожидает фактическую функцию, а Expression<Func<TEntity, bool>>
ожидает дерево выражений. IQueryable
строит ваш SQL-запрос на основе этого дерева выражений. Используя Func, вы вызываете перегрузку Where из обычного LINQ, которая возвращает IEnumerable. Который не имеет ToListAsync.
Вам необходимо импортировать пространство имен Microsoft.EntityFrameworkCore
. См. Официальную документацию для получения более подробной информации.