Эквиваленты значений полей данных

Я не смог найти ответ на этот вопрос, возможно, из-за того, что не знал, какие условия поиска использовать.

Я занимаюсь очисткой инструмента миграции данных спагетти-кода на основе C#. Согласно совету из предыдущего вопроса, я делаю это сейчас, используя Entity Framework, чтобы описать приятные «аккуратные» отношения между двумя системами.

Одна часть, которую я просто не могу понять, - это «правильный способ» перевода эквивалентных значений полей. Например:

Old-DB (Город) = "Нью-Йорк" New-DB (Город) = "Нью-Йорк"

Old-DB (Отдел) = "Счета" New-DB (Отдел) = "Бухгалтерский учет"

Я уверен, что единственный способ сделать это - использовать какой-то «статический» ресурс для поиска / перекрестных ссылок на значения полей. У меня были такие идеи:

  • Таблицы данных (CityTable, AccountTable и т. д.) Список FieldPairs
  • Элемент списка {OldValue = "NY", NewValue = "New York"} и т. д.
  • Еще хуже - LookupDictionary.txt

Но это кажется неправильным. И я стараюсь делать это «должным образом». Может кто-то указать мне верное направление?

Спасибо любезно

Если вы хотите, чтобы ваши отношения оценивались на сервере базы данных, вам нужно будет создать таблицу сопоставления на сервере, чтобы объединить поля. В любом случае, вероятно, неплохая идея - централизовать расположение картографических данных.

NetMage 29.03.2018 19:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
31
1

Ответы 1

А как насчет словаря?

            Dictionary<string, string> replaceCityValues = new Dictionary<string, string>();
            replaceCityValues.Add("NY", "New York");
            replaceCityValues.Add("LA", "Los Angeles");

            var toReplace = replaceCityValues.FirstOrDefault(x => x.Key == "NY");
            if (toReplace != null)

Если у вас есть «статические» значения для целевой замены, вы также можете использовать перечисление.

С другой стороны, список проще сериализовать и предоставить кому-то XML-файл для расширения для новых значений замены ...

Другие вопросы по теме