Я использую Entity Framework 6 для выполнения основных операций CRUD, которые все хорошо и хорошо. Мне нужно иметь возможность выбирать мои объекты в диапазоне дат, что опять же довольно просто, эти объекты могут быть распределены по нескольким базам данных, которые по существу являются складами для данных за предыдущий год. Как только мы ищем их в диапазоне дат.Использование Entity Framework с архивными базами данных
Пример: мы хотим, чтобы все объекты Foo были между 1 января 2015 года и 9 ноября 2016 года; данные Foo с 2015 года будут находиться в другой базе данных. Это происходит до 2005 года. Не все схемы идентичны.
We может имеет 11 проектов EF или 11 контекстов и 11 строк соединения. Это решение имеет проблему необходимости добавлять код каждый год при создании архива. Это похоже на хак. Переключение на методы хранения Azure не является вариантом в обозримом будущем.
Любые более изящные решения?
Это звучит неплохо! Итак, мы будем искать какое-то регулярное выражение, чтобы посмотреть на строку соединения (предположительно в web.config?) И свопировать. Схемы для таблиц, которые я ищу, схожи, но не идентичны. Могу ли я переделать через свободно или, возможно, просто полагаться на конвенции EF, чтобы сделать картографирование для меня? (будет +1, но я <15 noob) – Jimbob
@Jimbob Вы не можете переназначить EF во время выполнения, поэтому либо создавайте несколько 'DbContext', либо создавайте свои объекты, чтобы они охватывали все возможные поля на всех ваших DB, а затем проверять наличие нулей в полях, которые несовместимы. Вам было бы неплохо иметь прикладной уровень перед уровнем доступа к данным, чтобы обеспечить согласованное представление данных. – flipchart
Итак, мы будем рассматривать новый контекст каждый год? Я подумываю о том, чтобы один из администраторов баз данных сортировал эту серверную сторону с сохраненным proc, чтобы мы могли передавать параметры даты. Будет ли это лучше? – Jimbob