0

编辑:

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

你好

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

例如,如果我将一个项目添加到列表(将玩家添加到团队),它会在不使用存储库和 dbset 将其保存到数据库的情况下工作吗?

我有这样的东西

    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);
    }

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

什么可能是错误的导致这不起作用?* *

savechanges 返回 0(认为没有进行任何更改)

我现在添加了

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

这显然有效,但我仍然不知道为什么 EF 在没有明确告诉他的情况下看不到这些变化

4

2 回答 2

1

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

于 2012-06-30T16:59:16.380 回答
0

你需要打电话SaveChanges()

于 2012-06-29T15:40:06.573 回答