0

テーブルを含むSQLServerデータベースがあります。

これに加えて、LINQを使用し、Add、Remove、Get、Update関数を持つテーブルごとにクラスがあります。

その上、もっとプロジェクト固有の方法が欲しいです。

たとえば、私の最高レベルの機能の1つは、従業員にタスクを割り当てることです。

私の考えは、この機能を備えた別のクラスのセットを用意することです。たとえば、最初のTaskクラスには次のものがあります。

    public static IEnumerable<Task> GetAll(Schedule schedule)
    {
        KezberPMDBDataContext db = new KezberPMDBDataContext();
        return from p in db.Tasks
               where p.ScheduleID == schedule.ScheduleID
               select p;
    }

したがって、たとえば、タスクを割り当てるには、GetUnscheduledTasksを実行する必要があります。ができた:

    public static IEnumerable<Task> GetUnscheduled()
    {
       return Data.Tasks.GetAll(emptySchedule);
    }

私は基本的に、低レベルのデータを中レベルと交換し、トップレベルのデータを中レベルと交換しようとしています。

コードを整理またはリファクタリングして、コードをクリーンでモジュール式に保つにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

だからあなたは次のようなものを持っています...

SQL > ORM レイヤー > ビジネスレイヤー。BL にはルーチンがあります。

「従業員にタスクを割り当てる」

あなたの投稿の最後に来たら、「[...] 低レベルと中レベル、そしてトップレベルとの間でデータを交換しようとしています...」. MVC パターンを参照することをお勧めします。コントローラーは、モデルとビューの間の中間層として機能します。

「この機能を持つ別のクラスのセット」。コントローラーを支援する別のクラスのセットを意味していると思います。抽象度の低い名前を定義するのに十分な関係が得られるまで、これらのクラスを「ヘルパー クラス」と呼ぶ傾向があります。一般的な MVC/MVVM/etc パターンに加えて、上記の抽象化を含める傾向があります。

于 2013-01-17T14:37:55.843 に答える