entity framework .core常用技巧

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 };
            })

猜你喜欢

转载自www.cnblogs.com/KQNLL/p/10545891.html