私は、効率の観点から、データベースを照会するときには、必要以上の列しか返さないことを理解しています。基本オブジェクト関係マッピングの質問noob
しかし、私は、クエリの結果を格納するためにオブジェクトを使用したいことを考えると、これはジレンマに私の葉:
私は、私は特定の状況で必要な列の値を取得する場合、私は部分的にしか取り込むことができますオブジェクト。これは、私の気持ちは、私のオブジェクトを、プロパティやメソッドのいくつかしか利用できない非理想的な状態にしておくということです。後で、オブジェクトを再利用したい状況が発生したが、新しい状況で異なるが重複する列が返される必要があることがわかった場合、私は選択に直面しています。
既存のSQLを再利用して、同じクエリとオブジェクトマッピングロジックを両方で再利用できるように、新しい状況で必要な追加フィールドを選択した列のリストに追加する必要がありますか?または、2番目のクエリによって返されたオブジェクトのプロパティのみを読み込む別のメソッドを作成して、わずかに異なるSQLを実行する必要がありますか?
魔法の答えがないこと、そしてその答えが本当に状況に「依存する」と強く疑うが、私は一般的なアドバイスを探していると思う。私のアプローチは、クエリされたテーブルからすべての列を返すか、必要に応じて追加の列をクエリに追加することですが、パフォーマンスが問題になるまで同じSQL(およびマッピングコード)を再利用することでした。一般に、私は、出力に列を追加するコストがパフォーマンスに顕著な影響を及ぼさず、開発時間の節約と単純化された結果は良いトレードオフです。
しかし、このような状況がパフォーマンスに影響を与える場合はどう対処しますか?あなたは、などなど、などEmployees.GetLittleMorePersonlInfoButMinusSalary Employees.GetPersonalInfo
のようなメソッドを作成してください
それとも、何とか自分のAPIの利用者は、彼が人口たい列/プロパティを指定する必要がありますAPIを作成して終了します/返され、複雑さが増し、APIの使いやすさが向上しました。
Employee情報を取得したいとします。どのくらいの数のオブジェクトが一般的に関与しますか?
1)を返し、各従業員の行の1つの従業員オブジェクトを含む 2)アン従業コレクションオブジェクトは、EmployeeQueriesとして 3)オブジェクトを、返された従業員オブジェクトは、0の従業員のコレクションを返す「GetHiredThisWeek」などの方法が含まれていそれ以上のレコード。
私はこれがすべて非常に主観的であることを認識していますが、私はあなたがあなたに最も適したものについての提案を探しています。