【发布时间】:2011-06-16 21:39:10
【问题描述】:
我正在使用 ADO.NET Entity Framework 来处理我的 SQL Server 2008 R2 实例。一切正常(我正在修改其他表),直到我创建了新的 editEntity 方法,该方法在我修改后无法刷新实体,直到我重新启动程序。
这是我的查询:
TD_LIVING living = (from l in _model.TD_LIVING
where l.LEASE_START == leaseStart
&& l.TD_FLAT_ID == flat.TD_FLAT_ID
select l).FirstOrDefault();
living.LEASE_END = signOffDate;
int changesCount = UpdateContext.SaveChanges();
实体被修改(我检查了ObjectStateEntry),SaveChanges() 返回 1,但是,当我得到所有TD_LIVING 的列表时,那里的值是旧的。
我尝试过使用
_model.Refresh(RefreshMode.ClientWins, living);
当失败时,我尝试创建将实体附加到的新上下文:
badbEntities UpdateContext = new badbEntities();
UpdateContext.Attach(living);
living.LEASE_END = signOffDate;
int changesCount = UpdateContext.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
没用……
【问题讨论】:
-
应该
RefreshMode.ClientWins是RefreshMode.StoreWins吗? -
@Peter K. 我尝试了 RefreshModes 和 SaveOptions 的不同组合,但没有结果......
标签: c# entity-framework ado.net