Добавление версий в класс Entity - PullRequest
1 голос
/ 12 февраля 2020

У меня есть старая кодовая база с 2 классами сущностей (предположим, с 10 мер) Старая функциональность работает так же, как и всякий раз, когда вы загружаете файл Excel, он анализирует файл и сопоставляется с этим классом сущностей. Теперь в соответствии с новыми требованиями Каждый год я добавляю больше мер к этим классам сущностей и получаю новый файл Excel с 5 мерами. Как я могу добавить управление версиями на основе каждого года или как сделать сопоставление с классом сущности каждый год только из одного базового класса сущности. Или как я могу внедрить эту функциональность без изменения дизайна

Пример класса сущности -

[DataColumnAttribute]
public StatusLkup Insurance { get; set; }

[DataColumnAttribute]
public Code Status { get; set; }

[DataColumnAttribute]
public string test1 { get; set; }

Пример файла Excel

Строка 1 - Страхование, состояния, тест1 Строка 2 - 5, Co, test

В следующем году предположим, что к классу сущностей добавлено еще 2 новых показателя

[DataColumnAttribute]
public StatusLkup Insurance { get; set; }

[DataColumnAttribute]
public Code Status { get; set; }

[DataColumnAttribute]
public string test1 { get; set; }  

[DataColumnAttribute]
public string test2 { get; set; }  

[DataColumnAttribute]
public string test3 { get; set; }  

Файл Excel следующего года

Строка 1 - test1, test2 Ряд 2 - 12, 11

1 Ответ

2 голосов
/ 13 февраля 2020

Так как каждый год отличается, но на основе предыдущего, можно создать Interfaces, который будет определять ( версия ) года.

Можно создавать интерфейсы независимо от различий, но суть в том, что они версионируют данные .

Таким образом вы создадите версии данных и сможете использовать / отсортировать его соответственно без изменений в текущем коде, просто добавляя новый код каждый год.


Пример

Два интерфейса и второй наследуют от первого:

public interface IYear1
{
    int Test1 { get; set;}
}

public interface IYear2 : IYear1
{
    int Test2 { get; set;}
}

Затем производные классы:

public class Year1 : IYear1
{
    public int Test1 { get; set;}
}

public class Year2 : Year1, IYear2
{
    public int Test2 { get; set; }
}

Затем в коде мы можем создать / определить, какой год обрабатывается:

var year = new Year2() { Test1 = 1, Test2 = 2};

if (year is IYear2)
    Console.WriteLine("Year 2 Found");

if (year is IYear1)
    Console.WriteLine("Year 1 Found");

В результате мы определили две версии, которые используются:

Year 2 Found
Year 1 Found
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...