У меня есть приложение WPF, которое я разрабатываю на языке c #, и мне нужно подключиться к нескольким версиям одной и той же базы данных, чтобы программа работала.Мне не нужно подключаться к более чем одной версии одновременно, но я ищу подход, который не требует от меня написания 5-10 различных слоев данных.
Если у меня есть объект widgetV1
, widgetV2
и т. Д., И я хотел бы «GetWidget» ... Я не очень рад написать «GetWidgetV1», «GetWidgetV2»,и т.д. функции.Это может стать очень утомительным, если мне придется писать один и тот же код для 5-10 версий, снова и снова ... для каждого объекта в базе данных.
Таблицы немного отличаются, возможно,еще несколько столбцов в одном, чем в другом.Там могут быть некоторые различия типов.
WidgetV1 может иметь Prop1, Prop2, PropC WidgetV2 может иметь Prop1, Prop3, ProcC, PropD
Так что некоторые свойства будут одинаковыми, но другие будутразные.
Я начал подход с использованием обобщений, где я могу получить, добавить, удалить и т. Д., Передавая тип - widget1
, widget2
и т. Д. Но я все еще должен иметь фактическийтипы и нужно выбрать тип в зависимости от того, какую версию я определил, к которой я подключен.
У меня нет проблем с внешним интерфейсом, я беру любую версию объекта и конвертирую ее в DTO, и там все выглядит одинаково, но я чувствую, что доступ к даннымпридется дублировать много раз.
Есть идеи?