C# 如何使用master/detail保存类

C# 如何使用master/detail保存类,c#,methods,save,master,detail,C#,Methods,Save,Master,Detail,这是我的课堂记录,可以是master/detail/details 教师及其学生的记录 class Record { public string RecorNo { get; set; } private List<Teacher> _Student = new List<Teacher>(); public List<Teacher> Teacher { get { return _Teacher; }

这是我的课堂记录,可以是master/detail/details 教师及其学生的记录

class Record
{

    public string RecorNo { get; set; }

    private List<Teacher> _Student = new List<Teacher>();

    public List<Teacher> Teacher
    {

        get { return _Teacher; }
        set { _Teacher=value; }

    }
    }


class Teacher
{
    private string _TeacherName;

    public Teacher(string teachername)
    {
        _TeacherName = teachername;
    }

    public string TeacherName
    {
        get { return _TeacherName; }
        set { _TeacherName = value; }
    }

    private List<Students> _students = new List<Students>();

    public List<Students> Students
    {
        get { return _students;}
        set { _students = value;}

    }


}


class Details
{


    private string _studentname;

    public Details(string studentsname)
    {

        _studentsname = studentsname;

    }
现在我不知道如何保存此记录。
如何将其保存到数据库中? 我想喝一杯

           record.Save(); method that will save the whole object.
我可以遍历列表并逐个插入,但记录可能是 已经存在于数据库中,因此我必须知道添加、更新或删除了哪些记录

另外,如何制作一种方法来填充教师/学生列表,如:

           records.LoadTeachers();
           records.Teacher("Smith").LoadStudents();

您可能想看看诸如Microsofts Entity Framework或(我最喜欢的)NHibernate之类的ORM(对象关系映射)库。它们存在的唯一原因是使将对象持久化到关系数据库变得更容易。它们可以创建新行,跟踪对象更新和对象之间的关系。您可以自己创建持久化对象所需的逻辑,但已建立的ORM库已经成熟,得到了广泛的使用,而且可能比单个开发人员在合理的时间内所能想到的任何库都要好得多。

您可以尝试手动跟踪所有内容。您必须复制内存中的所有数据,以便将修改后的数据与原始数据进行比较。但是,您可能会遇到锁定问题、事务需求或其他一些不重要的需求,并且很快就会发现您正在构建自己的ORM。您当然不需要ORM,但只要您需要的不仅仅是“给我表x中的那个列”,ORM就可以让您的生活轻松很多。
           records.LoadTeachers();
           records.Teacher("Smith").LoadStudents();