2016-02-18 5 views
0

Я создал новый веб-проект в Visual Studio 2015 (Community Edition) и выбранный индивидуальный идентификатор. Я выполнил инструкции по использованию миграции EF, чтобы синхронизировать код и базу данных с настраиваемыми пользовательскими свойствами, и это сработало хорошо.Как настроить встроенный идентификатор AspNet без использования миграции

Однако, если я не хочу использовать миграцию базы данных, как добавить пользовательские свойства пользователя? Я вручную добавил свойства C# в поля таблицы ApplicationUser и DB, но всегда получаю сообщение об ошибке «Байт поддержки модели xxxxxContext с момента создания базы данных ...». Должен ли я добавлять эти сопоставления таблиц в OnModelCreating() переопределить?

Также для тех, кто доволен миграцией EF, как это будет работать при развертывании в разных средах?

+0

Ну, если вы собираетесь менять свою модель, вам нужен способ получить их в других средах. Во время ранней разработки вы можете просто использовать инициализатор, такой как DropCreateDatabase, чтобы получить ваши изменения в БД. Когда у вас есть данные, вам небезразличные миграции. Вы можете создать SQL-скрипт, который будет обновлять схему в других средах. –

+0

Я только что понял (спасибо за другие сообщения SO), что удаление/переименование таблицы __MigrationHistory и вызов Database.SetInitializer (null) отключит эту функцию миграции. Миграция работает для небольших/POC проектов, но для реальных приложений отдельный проект базы данных намного лучше отслеживает изменения и управление развертыванием. – Calvin

+0

Ну, мы уже более 2 лет используем миграции для крупномасштабного «реального» приложения с 4 различными средами (DEV, QA, TRAIN, PROD). Он прекрасно работает, когда вы понимаете проблемы. –

ответ

0

Все, что вам нужно сделать, это удалить таблицу __MigrationHistory из вашей базы данных - она ​​создается системой Identity при регистрации вашего первого пользователя.

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

Смежные вопросы