0


0

単純な構成関係をどのようにモデル化しますか

コンポジションの関係をモデル化するための最善の方法を理解するのを手伝ってくれる人はいますか?

例えば、私がたくさんのスケジュールを組むことができる学生がいるならば、私は大体以下を作成するでしょう:

class Student
{
  prop long Pk { get; set; }
  prop string Name { get; set; }
  prop List Schedules { get; set; }
}

class Schedule
{
  prop string Semester { get; set; }
  prop List Courses{ get; set; }
}

その下のどこかに私はScheduleオブジェクトがあるかもしれません、そしてそれがどの学生に属しているかを識別したいでしょう。 私は `Schedule.Student.Name`を書き、その見返りに生徒の名前を受け取ることができるようにしたいです。 ScheduleオブジェクトにもStudentプロパティを追加しますか?

私のアプリケーションはCRUD機能を実行するために私のScheduleオブジェクトにStudent Pkを渡しています。 私はそれを必要とするならばそれにハンドルを保つために私的な変数として学生PKを保っています。

私のアプリケーションがより複雑になるにつれて、私は自分がしてきたことを維持することが困難になってきています。 私のためのあなたの提案は何ですか? これらの基本事項をより深く理解し、よりよく処理するために、他に何を相談できますか(本/リンク)。

1 Answer


2


「Schedule.Student.Nameを書き、その代わりに生徒の名前を受け取ることができるようにしたいです。 ScheduleオブジェクトにもStudentプロパティを追加しますか? "はい。

説明していること(ルックアップ用の外部キーと、オブジェクトグラフを簡単にナビゲートするためのオブジェクト参照の両方のサポート)は、オブジェクトリレーショナルマッパー(ORM)に非常に適しています。 適切なORMは、FK / PKを使用して、関連するオブジェクトを自動的にロードします(例: ScheduleにStudentPKフィールドがある場合、マッパーはStudentプロパティのロード/マッピングを処理します。 このタイプの製品は多数あります。 Entity Frameworkなどの組み込みの.NETフレームワークを開くことができます。 LightSpeedなどの市販製品、http:// www.llblgen.com/[LLBLGen]、 OpenAccess(情報開示:会社に勤めていますそれは商用ORMになります)。 私が説明していることの種類の概要については、ORMまたはオブジェクトリレーショナルマッパーのグーグル、またはウィキペディアをチェックしてください。