Entity framework 4 实体框架4更新子集合

Entity framework 4 实体框架4更新子集合,entity-framework-4,Entity Framework 4,我在下面创建了一些基本的示例代码。我正在使用实体框架。我有一个具有子对象集合的父对象。我最初培养了三个孩子。当我更新孩子时,我删除了一个(约翰)并添加了一个(莎拉),另外两个(玛丽和安妮)保持不变。考虑到后面的数据库,有什么方法可以轻松做到这一点吗 public class test { public test() { Parent father = new Parent(); father.Childre

我在下面创建了一些基本的示例代码。我正在使用实体框架。我有一个具有子对象集合的父对象。我最初培养了三个孩子。当我更新孩子时,我删除了一个(约翰)并添加了一个(莎拉),另外两个(玛丽和安妮)保持不变。考虑到后面的数据库,有什么方法可以轻松做到这一点吗

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; }
}
公共类测试
{       
公开考试()
{            
父父=新父();
Add(newchild(){FirstName=“Mary”});
Add(newchild(){FirstName=“Anne”});
Add(newchild(){FirstName=“John”});
SaveEntityFramework();
}
公共无效更新儿童
{
父项父项=EntityFramework.GetParentByID(1);
//罢免约翰
删除(new Child(){FirstName=“John”});
//加上莎拉
Add(newchild(){FirstName=“Sarah”});
//更新或什么都不做玛丽和安妮
SaveEntityFramework();
}
}
公共类父类
{
公共字符串名称{get;set;}
公开儿童名单;
}
公营儿童
{
公共字符串名{get;set;}
}

您是否将父对象添加到EntityFramework上下文中?您只需创建它,添加3个孩子,然后保存

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

    // Add children

    SaveEntityFramework();
}
另外,确保在执行
EntityFramework.GetParentByID(1)时得到了什么
您将获得您要查找的
父项


希望这有帮助;)

您发布的代码有什么问题?它不起作用吗?