Возможно ли преобразование программных данных любого типа в Entity Framework 5 Code Первые миграции?Преобразование программных данных в EF5 Код Первой миграции
Существует метод Sql() для выполнения запросов, но он имеет тип возвращаемого значения void, и я не вижу способа получить результаты запросов, которые я выполняю.
Пример
У меня есть таблица Рецепт с одним-ко-многим отношения к Ингредиент. По разным причинам я хочу вместо этого преобразовать это в свойство строкового JSON-компонента. Единственный подход, который я могу придумать что-то вроде этого:
- Создать новый столбец IngredientsJson
- Для каждого рецепта, запросить его ингредиенты, построить строку JSON программным и вставить в новый столбец.
- Капля старого стола Ингредиент.
Я думаю, что я бы сделал преобразование в методе семян, использовать только новый столбец (S/столы, ...) в новом коде и оставить удаление старых объектов базы данных следующая миграция. У меня плохой опыт смешивания DML и DDl в обновлениях. Кроме того, безопасно чувствовать, что старые данные доступны (хотя и невидимы) в новом выпуске, потому что при конвертации всегда могут появляться неожиданные ошибки или даже потеря данных. И один вопрос: зачем вы хотите, чтобы вы делали результаты запросов? –
Идея заключалась в том, чтобы получить результаты команды Sql(), где я запросил ингредиенты для рецепта, чтобы программно преобразовать его в массив ингредиентов JSON. Спасибо за предложение. Одна из проблем, которую я вижу с вашим подходом, заключается в том, что мне нужно убедиться, что я запускал Seed() хотя бы один раз во всех своих БД, прежде чем перейти к шагу, который удаляет таблицу Ingredient.Я просто вижу это как что-то, что было бы легко забыть, следовательно, мое желание получить преобразование данных в рамках этапа миграции. Это просто имеет больше смысла и кажется более надежным в моей голове. – angularsen
Да, я вижу это. Я бы скорее был в безопасности, чем сожалеть, а JIRA - это моя память. Возможно, у кого-то есть опыт с вашим сценарием. Есть еще несколько аспектов этого интересного вопроса. Интересно, следует ли также предоставить обратное преобразование в методе Down? –