2016-04-09 21 views
0

私はWPFアプリケーションを持っています。ビューとViewModelを設計することでかなり完成しました。 Modelクラスを設計する際に、私はデータベースに接続して必要なデータを提供するレイヤーとして使用します。私のモデルクラスを設計するにはどうすればいいですか

顧客の詳細を表示するグリッドがあるとします。私は打撃のような何かを書くことを考えた:

class CustomerModel 
    { 
     public DataView GetCustomerData() 
     { 
      // Fetch the data from Database and prepare a Dataview 
      // return the DataView 
     } 
    } 

私の問題は、私はすべての顧客データを表示していた場合は、上記の方法は十分であろう

  • です。しかし、グリッドのGUIにフィルタオプションがある場合、フィルタパラメータに基づいてデータを取得する別の関数を記述するのはどうでしょうか? (おそらくフィルタパラメータに合わせて関数をオーバーロードする)
  • また、私はさまざまなテーブルのデータをそれぞれ必要とする10個のグリッドがあると仮定します。私はそのような10のクラスを書く必要がありますか? (同様CustomerModelOrderModelEmployeeModel .etc)

あなたは私が私がモデルコンポーネントで取り組むことができます最善の方法を知って聞かせていただけますか?

答えて

0

すべての顧客データを表示している場合は、上記の方法で十分です。しかし、グリッドのGUIにフィルタオプションがある場合、フィルタパラメータに基づいてデータを取得する別の関数を記述するのはどうでしょうか?モデルから

別々のデータアクセスロジックを(おそらくフィルタパラメータに対応するために機能をオーバーロード)やロジックにアクセスするためにCommandを使用して、モデルを埋める(あなたのUIの凍結を避けるためにasyncawaitパターンを探してください)。 DataGrids ItemSourceとしてListCollectionViewを使用すると、簡単にフィルタリングとソート機能を追加できます。

また、さまざまなテーブルのデータをそれぞれ必要とする10個のグリッドがあるとします。私はそのような10のクラスを書く必要がありますか? (CustomerModel、OrderModel、EmployeeModel.etcなど)

は何をすべきかyou're計画に依存しますが、私はit'dがそれぞれの目的のために異なるモデルを持っている意味をなさないと思います。あなたはちょうどあなたがより多くの詳細が必要な場合は、尋ねる、または(例えばCustomerModelがタイプPersonModelContact -propertyを持っているので、あなたのEmployeeModelに同じタイプでPersonalData -propertyを追加することができます)一緒に基本的な性質で

を不適合を置くことができます何かがはっきりしない。

関連する問題