EF获取非跟踪数据之DBSet.AsNoTracking()
来源:互联网 发布:电信网络电视机顶盒多少钱 编辑:程序博客网 时间:2024/05/23 12:42
一、EF中用户查询非跟踪数据的方式是使用DBSet.AsNoTracking()
1.目前EF版本是6.0,生成的数据库实体模型都是DbSet<T>类型
2.默认情况下对于数据的访问都是启用模型跟踪
ctx.Configuration.AutoDetectChangesEnabled=true
自动调用DbContext.ChangeTracker.DetectChanges的方法:
DbSet.FindDbSet.LocalDbSet.RemoveDbSet.AddDbSet.AttachDbContext.SaveChangesDbContext.GetValidationErrorsDbContex.EntryDbChangeTracker.Entries
3.如果对于不需要修改的数据可以使用AsNoTracking()方法// // 摘要: // 表示针对 DbContext 的 LINQ to Entities 查询。 // // 类型参数: // TResult: // 要查询的实体的类型。 [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")] public class DbQuery<TResult> : IOrderedQueryable<TResult>, IQueryable<TResult>, IEnumerable<TResult>, IOrderedQueryable, IQueryable, IEnumerable, ...... { // // 摘要: // 返回一个新查询,其中返回的实体将不会在 System.Data.Entity.DbContext 中进行缓存。 // // 返回结果: // 应用了 NoTracking 的新查询。 public virtual DbQuery<TResult> AsNoTracking();
//AsNoTracking 获取到的数据不能用作修改using (MenuModel _Context = new MenuModel()){ Menu.Menu first = _Context.Menus.AsNoTracking().First(); Console.WriteLine(first.MenuName); first.MenuName = "abc"; first.Model.ModelName = "123"; _Context.SaveChanges(); Console.WriteLine(_Context.Menus.AsNoTracking().First().MenuName);}
更多:
EF实体对象变动跟踪
EntiryFramework中事务操作实例
EntiryFramework中事务操作(三)事务回滚数据模型和数据库不对应问题
0 0
- EF获取非跟踪数据之DBSet.AsNoTracking()
- EF获取当天的数据
- 单元测试 mock EF 中DbContext 和DbSet Include
- Windows服务之EF加载数据
- EF批量操作数据之EntityFramework.Extended
- EF实体对象变动跟踪
- EF实体框架模型使用Linq获取数据库数据
- MVC 使用EF Code First数据迁移之添加字段
- ASP.NET MVC4学习之-------保持数据到数据库EF
- 用户数据跟踪之Flash Cookies
- 获取EF连接字符串
- Android逆向之旅---Android中如何在非Root设备中获取应用隐私数据
- EF 数据丢失
- 传用EF添加数据
- EF codefirst数据迁移
- ef 修改数据
- EF 数据更新
- EF 数据延迟加载
- java操作hdfs
- 在linux中使用eclipse开发mapreduce
- tomcat服务器work文件夹说明
- 命令行编译运行WordCount.java
- ExpandableListView怎么实现不同的布局?
- EF获取非跟踪数据之DBSet.AsNoTracking()
- hadoop shell执行示例wordcount jar包
- ubuntu各种软件安装问题及解决
- FFMPEG系列课程(二)读取视频帧
- java实现RDD算子
- PHP版本VC6与VC9/VC11/VC14、Thread Safe与None-Thread Safe等的区别
- spark基础
- 什么是IaaS,PaaS和SaaS及其区别
- java编写spark程序