C# ASP.NET MVC在更新后加载外键集合-奇怪的行为

C# ASP.NET MVC在更新后加载外键集合-奇怪的行为,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有一个索引视图,显示项目列表,每个项目都有一个分配集合。第一次加载视图时,所有内容都将显示属性。当我编辑一个项目并添加或删除分配时,更改会正确地反映在数据和编辑视图中,但索引视图现在显示的分配数量不正确。我认为这与延迟加载和我检索数据的方式有关,但我不能肯定 型号: public Int64 ID { get; set; } public string Title {get; set;} ... public virtual ICollection<Assignment> Assi

我有一个索引视图,显示项目列表,每个项目都有一个分配集合。第一次加载视图时,所有内容都将显示属性。当我编辑一个项目并添加或删除分配时,更改会正确地反映在数据和编辑视图中,但索引视图现在显示的分配数量不正确。我认为这与延迟加载和我检索数据的方式有关,但我不能肯定

型号:

public Int64 ID { get; set; }
public string Title {get; set;}
...
public virtual ICollection<Assignment> Assignments { get; set; }
在控制器中:

IEnumerable<Item> wi = GetItemsForUser();
此时,在调试器中检查wi的内容时,Assignments集合不正确。例如,我有两个初始任务,然后添加和删除了一堆测试任务,最后有四个任务。在Assignments下,我现在看到System.Data.Entity.DynamicProxies.Assignments的两个条目。然后,我还有八个被列为MyApp.Models.Assignment的项目——这些是我正在添加和删除的项目。我希望看到四个项目,所有项目的类型都为System.Data.Entity.DynamicProxies.Assignments

我相信这与我在选择items.Distinct时如何在GetItemsForUser中检索数据有关,也可能与延迟加载的工作方式有关。这就好像它没有从数据库中刷新Assignments集合的内容一样,我需要能够强制它始终更新这些内容


提前感谢您的帮助。

作为比较,您是否在数据存储中查找了相应的行?您可能正在查看缓存数据。是的,我检查过了,它是正确的。在我开始更改分配后,要使项目列表正确显示,唯一的方法是终止调试会话并重新启动它。您是否总是在GetItemsForser中使用相同的db实例但使用不同的实例来进行更新?如果您使用的是类级EF上下文,请不要这样做。新建一个新的或在每个操作中按请求注入一个新的,这将确保您始终获得新的数据。不,实例是不同的。更新使用控制器中的更新发生,而GetItemsForUser在另一个类中。每个都有:私有WTContext db=新WTContext;上下文本身会保留这些数据吗?我不完全确定这是怎么回事。
IEnumerable<Item> wi = GetItemsForUser();