Лучший способ хранения идентификаторов базы данных и имен поиска - PullRequest
1 голос
/ 19 ноября 2010

В настоящее время я храню список тестов со связанной информацией, включая идентификаторы базы данных, внутри статических переменных в моем коде.Вот пример:

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

Затем они используются для создания группы тестов с помощью других статических методов get:

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

Проблема, с которой я столкнулся сейчас, заключается в том, что по сутиспособ поиска MyopathologyTest для конкретного идентификатора.Одним из решений было бы создать словарь и вручную вставить все эти тесты в словарь с идентификатором в качестве ключа.Это похоже на повторение большого количества кода.

Как правильно реализовать что-то подобное? Я думаю, мне нужно вывести тестовые данные на внешний уровень, загрузить их в тесты.во время выполнения и генерировать правильные справочные таблицы и группы на лету.Это правильный подход, на который я должен смотреть или есть лучший способ?

1 Ответ

2 голосов
/ 19 ноября 2010

Почему бы не сохранить тестовую информацию в базе данных, такой как SQLite, и извлекать данные по мере необходимости, используя библиотеки ADO.NET? Время отклика практически мгновенно, поэтому вам не нужно хранить много тестовых объектов в словаре.

...