2015-11-23 9 views
0

Я сделал несколько изменений в модели данных, и мне необходимо обновить сущность «Файл». Ранее этот объект имел только ссылку на абсолютный путь.Перемещение кода EF6 - обработка данных для обновления столбца «filePath» в varbinary

Мое намерение - извлечь файл по его пути и передать его в столбец varbinary.

Надежность/целесообразность выполнения этой манипуляции вместе/в течение соответствующего кода-миграции объекта Entity Framework? Эта миграция будет наложена на проект, в котором задействованы несколько разработчиков. Я пытаюсь выяснить, что является самым автоматизированным способом достижения этой миграции.

Существуют ли какие-либо рекомендации/подходы к этим видам миграции?

+0

Ничего себе это звучит круто и все, кроме почему? Мне просто интересно :) – Heberda

+0

@Heberda Есть определенные файлы, которые мы не можем статически ставить. Мы храним их с помощью sql-фильтра и обслуживаем его с помощью файлового контроллера. –

+0

Интересно, спасибо за ответ :) Удачи вам в решении, это немного выше моего уровня haha ​​ – Heberda

ответ

1

Я всегда предпочитаю делать подобные задания в методе миграции Up().

Помните, что у вас есть все возможности .NET у вас под рукой. Таким образом, везде, где вы применяете миграцию, база данных будет обновляться.

Поскольку ваши пути к файлам являются абсолютными, нет проблем с их поиском в системе, в которой выполняется приложение.

+0

Кажется, путь, я просто подожду пару дней, чтобы отметить это как ответ, В случае, если кто-то еще примет участие. –

1

Я бы создал файлData (varbinary) и сохранил filePath (varchar). Это изменение может быть сделано путем миграции. Затем я передам данные из файла в байтовый массив в отдельное задание, через консольное приложение или что-то подобное, синхронизируя это действие с другими разработчиками.

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

Затем в ходе последующей миграции, когда вы подтвердили, что все данные переданы, вы можете удалить столбец filePath.

+0

Это звучит разумно, однако я бы предпочел автоматизировать процесс немного больше. –