Subsonic 拯救父母和子女

Subsonic 拯救父母和子女,subsonic,Subsonic,在我的模式中,有两个表具有PK和FK关系。我使用亚音速发生器创建了DAL。如果我创建了一个新的父级及其子级,我应该如何保存它们?单独还是一次性 e、 g 我尝试了上面的方法,但没有效果,因为ChildCollection没有其父级ID。是我必须自己为每个子级分配父级ID,还是有一个一次性保存的选项?您可以使用自定义重载保存函数的分部类来提供所需的功能 public partial class Class1 { public void Save(bool childern) {

在我的模式中,有两个表具有PK和FK关系。我使用亚音速发生器创建了DAL。如果我创建了一个新的父级及其子级,我应该如何保存它们?单独还是一次性

e、 g


我尝试了上面的方法,但没有效果,因为ChildCollection没有其父级ID。是我必须自己为每个子级分配父级ID,还是有一个一次性保存的选项?

您可以使用自定义重载保存函数的分部类来提供所需的功能

public partial class Class1
{
    public void Save(bool childern)
    {
        Save();

        if (childern)
        {
            //based on primary/foreign key SubSonic provides
            //methods to fetch child collections related to
            //this (primary key) table.
            ChildernCollection col = Childerns();

            col.SaveAll();
        }
    }
}

假设:您的主键是由数据库自动生成的。如果是这样,您首先需要做的是保存()父对象,然后在ChildrenCollection中的每个对象中填充ParentID属性。完成此操作后,您将能够保存()您的ChildrenCollection

        Parent.Save();
        ChildCollection.ForEach(x => x.ParentID = Parent.ParentID);
        ChildCollection.SaveAll();
        Parent.Save();
        ChildCollection.ForEach(x => x.ParentID = Parent.ParentID);
        ChildCollection.SaveAll();