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



编辑:

我发现了为什么它看不到更改的问题我更改了与模型绑定器绑定的对象。在这种情况下,上下文不会对其进行跟踪。

你好

我的应用程序中的虚拟 ICollection 有问题。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);
    }

上面的代码仅在本地更改列表。但不保存对数据库所做的更改。我可以调用存储库将新对象直接添加到数据库中,但我认为这不是好方法。

可能是什么问题导致它不起作用?**

保存更改返回 0(认为不进行任何更改)

我现在已经添加了

            c.Vluchten.Attach(v);
            c.Entry(v).State = EntityState.Added;

这显然有效,但我不知道为什么 EF 没有明确告诉他就看不到更改

不要使用模型绑定器中的绑定对象,而是搜索附加到上下文的对象并在那里进行更改。(绑定对象不由实体更改跟踪器跟踪

你需要

调用SaveChanges()

最新更新