C# MVC3-自动虚拟收集(数据库保存更改)

C# MVC3-自动虚拟收集(数据库保存更改),c#,asp.net-mvc-3,entity-framework,C#,Asp.net Mvc 3,Entity Framework,编辑: 我发现了为什么它看不到变化的问题 我更改了与modelbinder绑定的对象。在这种情况下,上下文不会跟踪它 你好 我的应用程序中的虚拟ICollections有问题。EF自动保存您对实体所做的更改是否正确** 例如,如果我将一个项目添加到一个列表中(将玩家添加到一个团队),它将不使用存储库和数据库集将其保存到数据库中 我有类似的东西 public int RayonId { get; set; } public String Rayonnaam { get; set;

编辑:

我发现了为什么它看不到变化的问题 我更改了与modelbinder绑定的对象。在这种情况下,上下文不会跟踪它

你好

我的应用程序中的虚拟ICollections有问题。EF自动保存您对实体所做的更改是否正确**

例如,如果我将一个项目添加到一个列表中(将玩家添加到一个团队),它将不使用存储库和数据库集将其保存到数据库中

我有类似的东西

    public int RayonId { get; set; }
    public String Rayonnaam { get; set; }
    public virtual ICollection<Duivenmelker> Duivenmelkers { get; set; }

    public Rayon()
    {
           Duivenmelkers = new List<Duivenmelker>();

    }      


    public void AddMelker(Duivenmelker m)

    {
        Duivenmelkers.Add(m);
    }

这显然是可行的,但我不知道为什么EF没有明确告诉他你需要调用
SaveChanges()

不要使用modelbinder中的绑定对象,而是搜索附加到上下文的对象并在那里进行更改。
(EntityChangetracker不跟踪绑定对象)

我在控制器和类本身中都尝试过这个方法。saveChanges()等。它不会添加到我的数据库中。我使用objectcontextperhttprequest,因此不可能在错误的上下文中调用此savechanges,对吗?当我调用我得到的对象上的entry.state(IEntitychangetracker问题)时,它不会给出任何错误。如果您找到了问题和此问题的解决方案,请将其作为答案写下来,并接受您自己的答案。“现在是一个新问题……”应该是一个新问题。
            c.Vluchten.Attach(v);
            c.Entry(v).State = EntityState.Added;