实体框架4更新子集合

时间:2011-07-26 16:00:17

标签: entity-framework-4

我在下面创建了一些基本示例代码。我正在使用实体框架。我有一个Parent对象,它有一个Children集合。我最初成立了三个孩子。当我更新孩子时,我正在删除一个(John)并添加一个(Sarah),另外两个(Mary& Anne)保持不变。考虑到背后的数据库,有没有办法轻松做到这一点?

public class test
{       

    public test()
    {            
        Parent father = new Parent();

        father.Children.Add(new Child() { FirstName = "Mary" });
        father.Children.Add(new Child() { FirstName = "Anne" });
        father.Children.Add(new Child() { FirstName = "John" });  

        SaveEntityFramework();
    }

    public void UpdateChildren
    {
        Parent father = EntityFramework.GetParentByID(1);

        // Remove John
        father.Children.Remove(new Child() { FirstName = "John" });

        // Add Sarah
        father.Children.Add(new Child() { FirstName = "Sarah" }); 

        // Update or do Nothing Mary & Anne

        SaveEntityFramework();
    }
}

public class Parent
{
    public string Name { get; set; }
    public List<Child> Children;
}

public class Child
{
    public string FirstName { get; set; }
}

1 个答案:

答案 0 :(得分:0)

您是否将父亲添加到您的EntityFramework上下文中?你只是创建它,添加3个孩子,然后保存!

public test()
{            
    Parent father = new Perent();
    EntityFramework.Parents.Add(father);

    // Add children

    SaveEntityFramework();
}

此外,请确保在EntityFramework.GetParentByID(1);找到您正在寻找的Parent时获得的结果。

希望这会有所帮助;)