1

私は2つのテーブルの学生と活動を持っています. 各生徒は 10 個のアクティビティを持っている必要があり、異なるものにすることができます。このシナリオで CRUD を作成する最良の方法は何ですか?

現在、私はこれをやっています:

using System; 
using System.Collections.Generic; 

namespace StudentActivity.Models 
{ 
    public class Student 
    { 
        public int StudentID { get; set; } 
        public string LastName { get; set; } 
        public string FirstMidName { get; set; } 
        public string ActivityId{ get; set; } 
        public virtual ICollection<Activity> Activity { get; set; } 
    } 
}

上記のシナリオの CRUD コントローラーを作成します。しかし、これは管理を非常に困難にします。生徒ごとに 10 個のアクティビティを個別に作成する必要があるためです。これを行うより良い方法はありますか?1 人の生徒と、その下に 10 個のアクティビティ テキストボックスが一度に表示されるようにします。それらを1つずつ埋めるのではなく。

4

1 に答える 1

1

ここでは間違いなく2つの異なるものを混ぜ合わせています。ビジネスエンティティは、UIに関係なく意味のある方法でビジネスロジックを表すように設計する必要があります。

良い習慣として、ビジネスレイヤーを設計するときは、最小限の変更または変更なしで、さまざまな種類のUIで使用する必要があると想定する必要があります。

ここでビジネスケースを見ると、親クラス(Student)と子クラス(Activity)があります。各生徒は多くの活動をする必要があります。したがって、ここでの設計は正しいです。UIでこれをレンダリングする方法は、このデザインにまったく影響を与えないはずです。

ビューは、情報を表示し、ユーザーからの入力を受け入れる責任があるエンティティです。アクティビティのコレクションを含むこのStudentクラスを考えると、すべてのアクティビティを一度に入力できるように表示できない理由がわかりません。これまでに何を試しましたか?

于 2012-09-01T01:12:24.680 に答える