0

このメソッドを ISchoolclassCodeRepository または ISchoolclassService に配置する必要がありますか?

/// <summary>
        /// The client passes newly created and existing schoolclass codes.
        /// The newly created schoolclass codes are returned.
        /// </summary>
        /// <param name="newAndExistingSchoolclassCodes">All schoolclass codes and the newly created by the user</param>
        /// <param name="schoolyearId">The related schoolyear for a schoolclass code</param>
        /// <returns>The newly created schoolclass codes</returns>
        public IEnumerable<SchoolclassCode> GetNewCreatedSchoolclassCode(IEnumerable<SchoolclassCode> newAndExistingSchoolclassCodes, int schoolyearId)
        {
            var existingSchoolclassCodes = _uniOfWork.SchoolclassCodeRepository.GetSchoolclassCodes(schoolyearId).ToList();
            var newSchoolclassCodes = existingSchoolclassCodes.Except(newAndExistingSchoolclassCodes,new SchoolclassCodeComparer());
            return newSchoolclassCodes;
        }
4

2 に答える 2

0

私の投票はISchoolclassService、もしあれば、になります。ただし、この目的のためだけに作成することはしません。

それはまた何をするかに依存SchoolclassCodeComparerします。独自のデータアクセスがある場合、同じリポジトリを呼び出して学校のコードを取得しますか?

SchoolclassCodeComparerによって課せられた制約をクエリに渡す方法があれば、これをリポジトリに保存します。さまざまなルールを使用した結果セットの後処理がサービスに存在する可能性があります。

リポジトリレイヤーでDataAccessを処理することを好みます。Dataaccessのロジックは、パラメーターの作成と、返された結果の予測の作成に制限されます(必要な場合)。

他のビジネスロジックに基づいてデータセットをマッサージ/フィルタリングすることは、サービスの仕事である可能性があります。

于 2013-03-12T17:18:30.890 に答える
0

これは、アプリケーションロジックに似ているようです。あなたの場合、これはサービスに実装されます。ただし、これは多くの場合、アプリケーション層に入ります。さまざまなレイヤーを説明する追加情報を次に示します。おそらく、これらの概念のいくつかを採用したいと思うでしょう。

リポジトリはデータ アクセス ロジックのみを保持します。これは、CRUD のような操作を意味します。

于 2013-03-12T17:22:59.467 に答える