1、在使用ef做查询时候,如果单单只是将结果数据用于展示不用后续更新操作,可以使用AsNoTracking可以提高查询效率。
比如
return await _productRepository.Query().AsNoTracking().Where(x => ids.Contains(x.Id)).ToListAsync();
2、批量更新时候,如果更新的只是某几个字段,不用全表所有字段更新。当然这里批量更新使用的z.entityframework.core。
var products = _Repository.Query().Where(p => idList.Contains(p.Id)).Select(p => new { p.Id, p.GroupName }) .ToList().Select(p => new Product { Id = p.Id, GroupName = p.GroupName }).ToList(); _Repository.BulkUpdate(products.ToArray(), options => { options.BatchSize = 100; options.ColumnInputExpression = c => new { c.Id, c.GroupName }; })
原文:https://www.cnblogs.com/KQNLL/p/10545891.html