【发布时间】:2016-12-06 15:47:14
【问题描述】:
我使用 Entity Framework 已有几年了,现在我遇到了一个小问题。
我将一个实体添加到我的表中,
Entities.dbContext.MyTable.Add(obj1);
这里没问题。
然后,我想在 MyTable 上做一个查询,比如
Entities.dbContext.MyTable.Where(.....)
上面的代码会在数据库中查询我的MyTable。
有没有办法在 saveChanges 之前查询刚刚添加的值? (obj1) 怎么样?
更新
我为什么需要这个?因为,对于我添加的每个新元素,我都需要编辑上一条和下一条记录中的一些值(此表中有一个日期时间字段)
更新2
假设我必须添加很多对象,但我仅在添加最后一项后才调用 saveChanges。每次添加新项目时,我都会读取它的日期时间字段,并在数据库中搜索上一条和下一条记录。在这里,我编辑了上一条记录和下一条记录的字段。现在,问题来了:如果我插入另一个项目,例如,下一个项目是“Obj1”,我必须找到并编辑它,但我找不到它,因为我没有保存我的更改。现在清楚了吗?
【问题讨论】:
-
您为什么要这样做?您已经拥有该对象,它存储为
obj1 -
只要您调用 SaveChanges,obj1 就会包含刚刚保存的任何内容,例如它的主键 - 无需重新获取它。
-
@AlfieGoodacre 我编辑了这个问题来回答你:)
-
@PieroAlberto 我还是很困惑,你有这个对象,所以你仍然可以用它来编辑其他值
-
@Darren 如果数据库上有用于创建日期或其他计算的触发器,则必须重新加载对象才能获取这些值。
标签: c# sql entity-framework savechanges