0

次のシナリオでは:

  • C# で記述されたフォーム ベースの Windows アプリケーション
  • GUI にはインターフェイス関連のコードのみが含まれますが、機能ロジックのクラスをインスタンス化します
  • SQL からデータを格納およびロードする SQL クラス
  • データベースと互換性のある形式でデータを格納するデータ クラス

SQL クラスを介してデータをロードし、データ クラスに格納したいと考えています。それを行う最良の方法は何ですか?

  1. 機能クラスは、SQL クラスをインスタンス化し、クエリ関数を呼び出し、含まれている値をコンストラクターを使用して新しいデータ クラス インスタンスに渡します。
  2. SQL クラスには、クエリをデータ クラスに変換する関数が含まれているため、データを正しい形式で機能クラスに返します。
  3. Data クラスにはクエリ結果を直接解析するメソッドが含まれているため、機能ロジックは解析を呼び出すだけで済みます。

オプション 1 は、この構造に最も適しているようです。大規模なアプリケーションを作成する私の経験はかなり限られているため、より経験のある人がこれについてどのように考えているか知りたい.

4

1 に答える 1

1

より経験のある人は、ORM (オブジェクト リレーショナル マッパー) を使用してこれを行います。
または、データベース アクセスをカプセル化し、データ転送オブジェクトをアプリケーション コードに渡すデータアクセス層を作成する可能性があります。

オプション 1 は、データベースがアプリケーションに溶け込んでいるように感じます。大規模なアプリケーションでは、関心の分離が非常に重要です。
オプション 2 は、独自のデータ アクセス レイヤーの記述の開始のように聞こえます。
オプション 3 は、リレーショナル データベース構造の知識でデータ転送オブジェクトを汚染します。

ORM を手に入れることについてよく考えてください。
エンティティ フレームワーク。冬眠。サブソニック。大規模。ダッパー。たくさんの選択肢があります。重要なことは、これは多くの経験を持つ多くの開発者によってすでに何度も解決されている問題だということです。彼らの学習を活用して、開発をスピードアップできます。

于 2013-01-31T23:30:42.987 に答える