Я создал приложение MVC, в котором я переименовал класс модели из «Diplomata» в «Diplomas», и теперь я не могу сделать миграции для создания таблицы с именем «Diplomas», потому что они все еще используют старое имя для некоторая причина. (С использованием .NET Framework 4.6 и EntityFramework 6.1.2)Почему мое приложение ищет таблицу, которая не должна/не должна существовать?
вещи, которые я пытался до сих пор:
- сбрасывают таблиц БД полностью (из SQL Object Server Explorer Visual Studio и вручную удалить файлы)
- удалить папку миграции и повторное включение миграцию
- удаление модели и воссоздание его (после удаления миграции и полностью сбросив столы)
После включения миграции снова и с помощью команды «добавить перенастройки Начальные» Я получаю сценарий, который генерирует таблицу с именем «dbo.Diplomata»
это модель
namespace DDS.Data.Models
{
using System.Collections.Generic;
using DDS.Data.Common.Models;
public class Diploma : BaseModel<int>
{
public string Title { get; set; }
public string Description { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
}
это ApplicationDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
...
public IDbSet<Diploma> Diplomas { get; set; }
...
}
и это часть миграции скрипт, который автоматически генерируется
public partial class Initial : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Diplomata",
c => new
{
Id = c.Int(nullable: false, identity: true),
Title = c.String(),
Description = c.String(),
...
}
Также поиск в VS2015 для «Diplomata» во всем решении ничего не нашел.
Добавление миграции, которая переименовывает таблицу, приводит к сбою приложения после обновления, поскольку он ищет таблицу со старым именем. (Недопустимое имя объекта 'dbo.Diplomata')
Я отлаживал этот день весь день без каких-либо результатов, поэтому любые идеи или предложения о том, где и что искать, оценены.
PS: Это мой первый вопрос здесь, так что, если я что-то пропустил или что-то трудно понять, пожалуйста, скажите мне, спасибо
Нет свободного кода (OnModelCreating)? Вы можете попробовать изменить свой инициализатор на DropCreateDatabaseAlways и посмотреть, создает ли это правильные таблицы. Все остальное выглядит правильно. –
DropCreateDatabaseAlways не помогло. Я заметил, что когда я пытаюсь переименовать таблицу с переносом в консоли диспетчера пакетов после выполнения обновления базы данных, я получаю это предупреждение: _Caution: изменение любой части имени объекта может привести к поломке скриптов и хранимых процедур ._Witch говорит мне, что там могут быть некоторые скрипты, которые мне нужно избавиться от @SteveGreene –