EntityFramework 性能优化

1. 查询时如果不缓存数据,可以加快加载速度

复制代码
            //连接数据库
            TestDbContext db = new TestDbContext();
            //使用 AsNoTracking() 方法后将不会在 DbContext 中缓存实体数据
            var testAList = db.TestAs.AsNoTracking().ToList();
            //枚举
            foreach(var testA in testAList)
            {
                Console.WriteLine(String.Format("ID:{0},Count:{1},Name:{2},Remarks:{3},DateTime:{4}", testA.ID, testA.Count, testA.Name, testA.Remarks, testA.DateTime));
            }
复制代码

2. 修改实体时无需事先查询再修改,并且只修改需要的字段

复制代码
            //新建一个实体对象,其中,ID值必须为数据库中已存在的值,否则会引发异常,其它的属性只需要为要修改的属性赋值即可
            var testA = new TestA()
            {
                ID = 1,
                Name = "Modify",
            };
            //连接数据库
            TestDbContext db = new TestDbContext();
            //将实体对象附加到对应的集合中
            db.TestAs.Attach(testA);
            //将实体对象中需要修改的属性的修改标识设为true
            db.Entry(testA).Property("Name").IsModified = true;
            //保存修改
            db.SaveChanges();
复制代码

 

posted on   四芯线  阅读(235)  评论(0编辑  收藏  举报

编辑推荐:
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
· drools 规则引擎和 solon-flow 哪个好?solon-flow 简明教程
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示