2010-11-19 9 views
1

現在、データベースIDを含む関連情報を含むテストのリストをコード内の静的変数内に格納しています。ここでは例です:データベースIDと参照名を格納するためのより良い方法

public static class IsokineticTests 
{ 
    // Cervical Spine Group 
    public static MyopathologyTest NeckFlexors = MyopathologyTest.Create(600, "Neck Flexors"); 
    public static MyopathologyTest AnteriorObliques = MyopathologyTest.Create(601, "Anterior Obliques"); 
    public static MyopathologyTest NeckExtensors = MyopathologyTest.Create(602, "Neck Extensors"); 
    public static MyopathologyTest PosteriorObliques = MyopathologyTest.Create(603, "Posterior Obliques"); 
    public static MyopathologyTest LateralFlexion = MyopathologyTest.Create(604, "Lateral Flexion"); 

    // Shoulder Group 
    public static MyopathologyTest ShoulderAbductors = MyopathologyTest.Create(610, "Shoulder Abductors"); 
    public static MyopathologyTest ShoulderExtensors = MyopathologyTest.Create(611, "Shoulder Extensors"); 
    public static MyopathologyTest ShoulderFlexors = MyopathologyTest.Create(612, "Shoulder Flexors"); 
    public static MyopathologyTest ShoulderLateralRotators = MyopathologyTest.Create(613, "Shoulder Lateral Rotators"); 
    public static MyopathologyTest ShoulderMedialRotators = MyopathologyTest.Create(614, "Shoulder Medial Rotators"); 
} 

これらのその後のメソッドを取得する他の静的プロパティを使用してテストグループを作成するのに慣れる:

public static class IsokineticTestGroups 
{ 
    public static IsokineticTestGroup CervicalSpine 
    { 
     get 
     { 
      return IsokineticTestGroup.Create("Cervical Spine", 
        new List<MyopathologyTest> 
         { 
          IsokineticTests.NeckFlexors, 
          IsokineticTests.AnteriorObliques, 
          IsokineticTests.NeckExtensors, 
          IsokineticTests.PosteriorObliques, 
          IsokineticTests.LateralFlexion 
         }); 
     } 
    } 
} 

私がいる問題は、今ルックアップする方法は基本的にありませんMyopathology特定のIDのテスト。 1つの解決策は、辞書を作成し、これらのすべてのテストをIDをキーとして手動で辞書に挿入することです。しかしこれは多くのコードを繰り返すようです。

このようなものを実装する適切な方法は何ですか?私は、テストデータを外部化し、実行時にテストにロードし、適切なルックアップテーブルとグループを即座に生成する必要があると考えています。これは私が見ているべき正しいアプローチですか、それとも良い方法ですか?

+0

グループに含まれるすべてのデータをデータベースに保存しないのはなぜですか? – BobbyShaftoe

+0

私はすでにテスト結果にSQLiteデータベースを使用していますが、将来的に一部のデータを変更するのが難しいと私は考えていたと思います。しかし、あなたとTimが言及したので、私はこの情報を含む別のデータベースを持つことができませんでした。 –

答えて

2

SQLiteのようなデータベースにテスト情報を保存し、ADO.NETライブラリを使用して必要に応じてデータを取得してみませんか?応答時間は事実上瞬間的なので、多くのテストオブジェクトを辞書に保存する必要はありません。

+0

さて、これはクライアント側で実行されるアプリケーションです。データベースIDは、テスト結果を格納するSQLiteテーブルのTestIDフィールドを参照します。最初にデータベースにテストを実装するには、テストをコードまたは外部に保存してから初期化時にデータベースを読み込む必要があり、今後テストを追加するにはユーザーのデータベースを更新する必要があります。この方法はちょっと複雑になっているようです。たぶん私は別のデータベースにこれらを保存する必要があります... –

関連する問題