码迷,mamicode.com
首页 > 其他好文 > 详细

EF Core性能优化(一)

时间:2020-05-22 13:06:31      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:var   models   设置   nbsp   only   return   更改   add   framework   

跟踪查询
  返回实体类型的查询是默认会被跟踪的。 这表示可以更改这些实体实例,然后通过 SaveChanges() 持久化这些更改。
非跟踪查询
  在只读方案中使用结果时,非跟踪查询十分有用。 可以更快速地执行非跟踪查询,因为无需设置更改跟踪信息。 如果不需要更新从数据库中检索到的实体,则应使用非跟踪查询。 可以将单个查询替换为非跟踪查询。

具体详情可查看微软官方跟踪与非跟踪查询

实体状态由EntityState枚举定义:Detached(未跟踪)、Unchanged(未改变)、Added(已添加)、Deleted(已删除)、Modified(已修改)

using System.Threading.Tasks;
using Core.Web.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

namespace Core.Web.Controllers
{
    public class RegionController : Controller
    {
        private readonly DataContext _dataContext;
        public RegionController(DataContext dataContext)
        {
            _dataContext = dataContext;
        }
        //非跟踪查询
        public async Task<IActionResult> Index()
        {
            var regions = await _dataContext.Region.AsNoTracking().ToListAsync();
            return View(regions);
        }
        //非跟踪增加
        public async Task<bool> Add(Region region)
        {
            region.RegionID = 11;
            region.RegionDescription = "青岛";
            _dataContext.Entry(region).State = EntityState.Added;
            int res = await _dataContext.SaveChangesAsync();
            return res > 0;
        }
        //非跟踪修改
        public async Task<bool> Edit(Region region)
        {
            region.RegionID = 11;
            region.RegionDescription = "菏泽";
            _dataContext.Entry(region).State = EntityState.Modified;
            int res = await _dataContext.SaveChangesAsync();
            return res > 0;
        }
        //非跟踪删除
        public async Task<bool> Del(Region region)
        {
            region.RegionID = 11;
            _dataContext.Entry(region).State = EntityState.Deleted;
            int res = await _dataContext.SaveChangesAsync();
            return res > 0;
        }
    }
}

 

EF Core性能优化(一)

标签:var   models   设置   nbsp   only   return   更改   add   framework   

原文地址:https://www.cnblogs.com/win32pro/p/12936244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!