2

これは私のクラスの記録であり、マスター/詳細/詳細になることができます教師とその生徒の記録

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;

    }

私は次のように2つのdatagridviewで教師/生徒をバインドしました:

TeacherBindingSource.DataSource = record.Teacher;
StudentBindingSourcce.DataSource = TeacherBindingSource;
StudentBindingSourcce.DataMember = "Student";

dataGridView1.DataSource =TeacherBindingSource;
dataGridView2.DataSource =  StudentBindingSourcce;

今、私はこの記録を保存する方法を失いました。
これをデータベースに保存するにはどうすればよいですか?欲しいです。

           record.Save(); method that will save the whole object.

リストを繰り返して1つずつ挿入できますが、レコードがデータベースにすでに存在している可能性があるため、どのレコードが追加、更新、または削除されたかを知る必要がありましたか?

また、次のように教師/生徒のリストを埋めるメソッドを作成する方法もあります。

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

1 に答える 1

2

Microsofts Entity Frameworkや(私のお気に入りの)NHibernateなどのORM(オブジェクトリレーショナルマッピング)ライブラリを確認することをお勧めします。それらが存在する唯一の理由は、オブジェクトをリレーショナルデータベースに永続化することを容易にすることです。新しい行を作成したり、オブジェクトの更新やオブジェクト間の関係を追跡したりできます。オブジェクトを自分で永続化するために必要なロジックを作成することもできますが、確立されたORMライブラリは成熟しており、広く使用されており、おそらく1人の開発者が妥当な時間で思いつくものよりもはるかに優れた設計になっています。

于 2012-06-04T09:25:07.477 に答える