c# – 仅添加但未保存的值的实体框架查询
发布时间:2020-12-15 08:44:24 所属栏目:百科 来源:网络整理
导读:我在几年内使用Entity Framework,现在我遇到了一些问题. 我将一个实体添加到我的表中 Entities.dbContext.MyTable.Add(obj1); 好的 然后,我想在MyTable上查询,比如 Entities.dbContext.MyTable.Where(.....) 上面的代码将在db中查询我的MyTable. 还有一种方
我在几年内使用Entity Framework,现在我遇到了一些问题.
我将一个实体添加到我的表中 Entities.dbContext.MyTable.Add(obj1); 好的 然后,我想在MyTable上查询,比如 Entities.dbContext.MyTable.Where(.....) 上面的代码将在db中查询我的MyTable. 还有一种方法可以在saveChanges之前查询刚刚添加的值吗? (obj1)怎么样? UPDATE 我为什么需要这个?因为,对于我添加的每个新元素,我需要编辑上一个和下一个记录中的一些值(此表中有一个datetime字段) UPDATE2 假设我必须添加很多对象,但只在添加最后一项后才调用saveChanges.每次添加新项目时,我都会读取其日期时间字段,并在数据库中搜索上一个和下一个记录.在这里,我编辑前一个和下一个记录的字段.现在,问题是:如果我插入另一个项目,例如,下一个项目是“Obj1”,我必须找到并编辑它,但我找不到它,因为我没有保存我的更改.现在更清楚了吗? 解决方法
您应该能够通过更改跟踪器从dbContext中获取添加的实体,如下所示:
var addedEntities = dbContext.ChangeTracker.Entries() .Where(x => x.State == EntityState.Added && x.Entity.GetType().Name == "MyTable") .Select(x => x.Entity as MyTable); 因为您只查询添加的实体,所以可以将其与 dbContext.MyTable.Where(x => -criteria-).ToList().AddRange(addedEntities); 获取所有相关对象 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – System.Net.Sockets.SocketException创建websocket连
- dart – 如何围绕指定的锚点在2D中旋转Container小部件?
- oracle11g – 在Ubuntu 10.04中安装Oracle 11g R2
- PostgreSQL中有两个数组的zip()函数有什么区别吗?
- ajax+div=iframe应用
- 【Android高级】XMl文件的DOM、SAX、PULL三种解析方式全解
- 使用 Dojo 和 Grails 快速实现数据的增删改查(CRUD)
- C#:没有从Class转换为Class
- Flex Channel.Connect.Failed error NetConnection.Call.Fa
- flex spark datagird 样式