Я не смог найти ответ на этот вопрос, возможно, из-за того, что не знал, какие условия поиска использовать.
Я занимаюсь очисткой инструмента миграции данных спагетти-кода на основе C#. Согласно совету из предыдущего вопроса, я делаю это сейчас, используя Entity Framework, чтобы описать приятные «аккуратные» отношения между двумя системами.
Одна часть, которую я просто не могу понять, - это «правильный способ» перевода эквивалентных значений полей. Например:
Old-DB (Город) = "Нью-Йорк" New-DB (Город) = "Нью-Йорк"
Old-DB (Отдел) = "Счета" New-DB (Отдел) = "Бухгалтерский учет"
Я уверен, что единственный способ сделать это - использовать какой-то «статический» ресурс для поиска / перекрестных ссылок на значения полей. У меня были такие идеи:
Но это кажется неправильным. И я стараюсь делать это «должным образом». Может кто-то указать мне верное направление?
Спасибо любезно





А как насчет словаря?
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-файл для расширения для новых значений замены ...
Если вы хотите, чтобы ваши отношения оценивались на сервере базы данных, вам нужно будет создать таблицу сопоставления на сервере, чтобы объединить поля. В любом случае, вероятно, неплохая идея - централизовать расположение картографических данных.