EntityFramework 性能优化
2024-10-13 09:33:18
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 = ,
Name = "Modify",
};
//连接数据库
TestDbContext db = new TestDbContext();
//将实体对象附加到对应的集合中
db.TestAs.Attach(testA);
//将实体对象中需要修改的属性的修改标识设为true
db.Entry(testA).Property("Name").IsModified = true;
//保存修改
db.SaveChanges();
最新文章
- c++中的<;<;函义
- python的几个常用内置函数
- leetcode之链表排序题
- leetcode 143. Reorder List ----- java
- mini6410-JNI-led
- Python根据上下限生成不重复随机数1
- java web实现读取指定盘符下的图像(二)
- java提高篇(十四)-----关键字final
- css3制作导航栏
- 微信小程序中的微信支付js代码和流程详解
- window.close(); 关闭浏览器窗口js代码
- Customer Form Issue: Automatic Matching Rule Set Defaults Value AutoRuleSet-1
- Java_基础篇(数组的反转)
- select设置text的值选中(兼容ios和Android)基于jquery
- 小程序md5加密
- linux命令:使用less从后向前查看日志信息
- python全栈开发day55-mysql外键的三种变种
- nw.js---创建一个hello word的方法
- sw-stream
- Redis实现分布式Session
热门文章
- C++代码重构——从C global到C++ template
- Python3实现简单的爬虫功能
- 关于kali2.0 rolling无法连接数据的解决办法
- 模拟搭建Web项目的真实运行环境(一)
- JS中修改属性
- Linux之CentOS 常用命令
- Android真机调试 Android.Util.AndroidRuntimeException: You cannot combine custom titles with other title features
- 优雅的数组降维——Javascript中apply方法的妙用
- hdu 4547(LCA)
- Codeforces Round #367 (Div. 2)