私のモデルのデザインに問題があります。このアプリケーションには、1人または複数の講師が教えるModules(Ie Universityモジュール)があり、講師は1つまたは複数のモジュールも教えることができるため、データベース設計上、モジュールと講師の多対多の関係があります。データベースは、この関係は、私はモデルデザインとLINQクエリ
public class Module
{
public int id { get; set; }
public string name { get; set; }
public Department department { get; set; }
public string code { get; set; }
public virtual List<Lecturer> lecturers { get; set; }
...
}
下に見られるように、仮想的改質とその逆とモジュールのクラスの講師のリストが含まれ、これを達成するために複合キーとしてMODULE_IDとLecturer_idを有する付加テーブルによって表されます講師クラス:
public class Lecturer
{
public int id { get; set; }
public string name { get; set; }
public virtual List<Module> modules { get; set; }
...
}
私の最初の質問は、これが最善の方法ですモデルのこの状況を実装するには?しかし、これはうまくいくように見えますが、モジュールには講師が教えてくれたモジュールを教える講師がいます...など、非常に非効率的で最適ではないようです。また、このループのために、例えばモジュールをJSONオブジェクトとしてブラウザに返すことはできません。
最後に、正しい実装であれば、LINQを使用してモジュールをクエリし、その後、講師を持つ限定されたモジュールを返す方法がありますが、講義は制限されており、モジュールは関連付けられていません。現時点で私は次の声明を使用していますか?
Module module = dbContext.Modules.Where(r => r.id == id).Single();
プログラムの設計に関するコメントが必要な場合は、Programmers.SEにアクセスしてください。コード自体に関する回答が必要な場合は、おそらく特定の問題を抱えているコードを貼り付ける必要があります。 –
私は@GeorgeStockerに同意しません - これはStack Overflowに関する完全に有効な質問です。 – Randolpho
@Randolpho *デザイン*の質問です(タイトルでもそうです)。したがって、それはプログラマーの質問です。 –