2010-11-19 17 views
1

Şu anda kodumdaki statik değişkenlerin içinde veritabanı kimlikleri de dahil olmak üzere ilişkili bilgilere sahip Testlerin bir listesini saklıyorum. İşte bir örnek:Veritabanı kimliklerini ve arama adlarını depolamanın daha iyi yolu

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"); 
} 

Bunlar daha sonra diğer statik özellikler yöntemlerini almak yoluyla bir test grubu oluşturmak alışması:

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 
         }); 
     } 
    } 
} 

şimdi yaşıyorum sorun arama yolu esasen yoktur olduğu MyopathologyTek bir kimlik için test edin. Bir çözüm, bir sözlük oluşturmak ve tüm bu testleri el ile anahtar olarak kimliğe sahip sözlüğe eklemek olacaktır. Bu olsa da bir çok kodu tekrarlamak gibi görünüyor.

Böyle bir şeyin uygulanmasının uygun yolu nedir? Test verilerini harici hale getirmem, çalışma sırasında testlere yüklenmem ve doğru bakma tablolarını ve grupları anında oluşturmam gerektiğini düşünüyorum. Bakmam gereken doğru yaklaşım mı yoksa daha iyi bir yolu var mı?

+0

Gruplar dahil tüm bu verileri neden bir veritabanında saklamıyorsunuz? – BobbyShaftoe

+0

Zaten test sonuçları için diğer şeyler arasında bir SQLite veritabanı kullanıyorum ve düşünceme göre, bazı verilerin gelecekte çok değişmesini sağlayacağını düşünüyorum. Ancak, bu bilgiyi içeren ayrı bir veritabanına sahip olmam için hiçbir neden göremiyorum, şimdi siz ve Tim'den bahsedin. –

cevap

2

Test bilgilerini SQLite gibi bir veritabanında saklamayız ve ADO.NET kitaplıklarını kullanarak verileri gerektiğinde nasıl elde edersiniz? Yanıt süresi neredeyse anındadır, dolayısıyla bir sözlükte birçok test nesnesini saklamanıza gerek yoktur.

+0

Eh, bu istemci tarafı çalıştırılacak bir uygulamadır. Veritabanı kimlikleri, test sonuçlarını depolayan bir SQLite tablosundaki TestID alanını referans alır. Testleri veritabanına yerleştirmek için, testlerin hala kodda veya harici olarak depolanmasını, ardından veritabanının başlatılmasında doldurulmasını ve daha sonra testlerin eklenmesi için bir kullanıcının veritabanının güncellenmesini gerektirir. Bu yöntem daha karmaşık hale gelir gibi geliyor. Belki de bunları ayrı bir veritabanında depolamalıyım. –