Moh*_*sen 21 c# entity-framework refresh entity-framework-4 dbcontext
我想刷新我的所有实体DbContext而不重新创建它,我尝试了以下内容,但没有一个是有意义的:
var context = ((IObjectContextAdapter)myDbContext).ObjectContext;
var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added
| EntityState.Deleted
| EntityState.Modified
| EntityState.Unchanged)
where entry.EntityKey != null
select entry.Entity);
context.Refresh(RefreshMode.StoreWins, refreshableObjects);
//.......................................................................
foreach (var entry in this.Orm.ChangeTracker.Entries())
{
entry.State = EntityState.Unchanged;
}
this.Orm.ChangeTracker.DetectChanges();
Run Code Online (Sandbox Code Playgroud)
唯一一个刷新我的DbContext:
foreach (var i in this.Orm.ChangeTracker.Entries())
i.Reload();
Run Code Online (Sandbox Code Playgroud)
但它太慢了.你能帮我选择正确的方法吗?
Moh*_*sen 36
我刚刚发现Enumerable应该评估结果,因为该Refresh方法将其作为对象获取并且不对其进行评估.
var context = ((IObjectContextAdapter)myDbContext).ObjectContext;
var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added
| EntityState.Deleted
| EntityState.Modified
| EntityState.Unchanged)
where entry.EntityKey != null
select entry.Entity).ToList();
context.Refresh(RefreshMode.StoreWins, refreshableObjects);
Run Code Online (Sandbox Code Playgroud)
我更喜欢以下内容:
var refreshableObjects = myDbContext.ChangeTracker.Entries().Select(c=>c.Entity).ToList();
context.Refresh(RefreshMode.StoreWins, refreshableObjects);
Run Code Online (Sandbox Code Playgroud)
yon*_*bat 13
我检查了这个并且id工作正常:
//Search
Box box = dbContext.Boxes.FirstOrDefault(x => x.BoxId == 45);
//breakpoint here, change Name of Box by sql management studio
//Refresh
var context = ((IObjectContextAdapter)dbContext).ObjectContext;
context.Refresh(System.Data.Entity.Core.Objects.RefreshMode.StoreWins, box);
//Check refresh and if it is in context
box = dbContext.Boxes.FirstOrDefault(x => x.BoxId == 45);
Run Code Online (Sandbox Code Playgroud)
你确定它是相同的db-context吗?
| 归档时间: |
|
| 查看次数: |
54179 次 |
| 最近记录: |