Я использую VS2017 версии 15.7.3
Мне интересно, почему новое решение создаст базу данных с миграциями, перечисленными как версия 2.1.0, но если таблицы идентичности для той же самой базы данныхдобавлен через консоль PM, после чего миграция будет перечислена как rtm.
Шаги, чтобы продемонстрировать, что я имею в виду.
Я создаю новое решение, используя шаблон основного веб-приложения ASP.NET
Выбор отдельных учетных записей пользователей для аутентификации
Тогда сгенерированный код показывает, что при переносе данных будет ProductVersion 2.1.0
namespace WebApplication14.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.1.0")
//etc
Я запускаю приложение, регистрирую пользователя и нажимаю Применимые миграции для создания базы данных.
Далее
- Я использую SQL Server Object Explorer для удаления всех таблиц.
- Я удаляю папку Миграции из решения
В консоли диспетчера пакетов я набираю
Добавить-миграцию один
Теперь ApplicationDbContextModelSnapshot ссылается на rtm ProductVersion
namespace WebApplication14.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.1.0-rtm-30799")
Если я затем запускаю
update-database
, таблицы создаются вбаза данных с версией продукта rtm, перечисленной в __EFMigrationsHistory
Мне интересно, является ли это различие конструктивным или нет, и если да, то почему оно спроектировано таким образом.