.NET Core/Entity Framework Core не обновляется, по-видимому, ссылается на базу данных истории миграции, даже если она неC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .NET Core/Entity Framework Core не обновляется, по-видимому, ссылается на базу данных истории миграции, даже если она не

Сообщение Anonymous »

Код: Выделить всё

dotnet ef migrations add X
Это работает и добавляет три файла (если других миграций вообще нет) в папку миграции: X.cs, X.Designer.cs< /code> и QuizzDbContextModelSnapshot.cs.

Код: Выделить всё

dotnet ef database update
однако всегда возвращает один и тот же результат:

Код: Выделить всё

dotnet ef database update

Build started...
Build succeeded.

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (11ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT 1
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (11ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT 1
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (0ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (10ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [MigrationId], [ProductVersion]
FROM [__EFMigrationsHistory]
ORDER BY [MigrationId];
info: Microsoft.EntityFrameworkCore.Migrations[20405]
No migrations were applied. The database is already up to date.

No migrations were applied. The database is already up to date.
Done.

Код: Выделить всё

dotnet ef database update
создает базу данных, если она еще не существует, но все, что есть внутри нее, — это таблица __EFMigrationsHistory.
Что я пробовал:
  • Удалена папка миграций
  • Удалена таблица истории миграции
  • Удалена база данных
  • Удалена база данных
  • Удалена таблица истории миграции
  • Удалена база данных
  • Удалена таблица истории миграции li>
    Создал новую базу данных
  • Создал новый сервер (разумеется, изменив строки подключения в appsettings.json)
Ни одна из этих попыток не сработала.
Как ни странно, список миграций dotnet ef, похоже, тоже не работает

Код: Выделить всё

dotnet ef migrations list

Build started...
Build succeeded.

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (11ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT 1
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (11ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [MigrationId], [ProductVersion]
FROM [__EFMigrationsHistory]
ORDER BY [MigrationId];
No migrations were found.

Код: Выделить всё

dotnet ef migrations remove

Build started...
Build succeeded.

No ModelSnapshot was found.
Я также пытался вернуть QuizzDbContext.cs к предыдущим коммитам, но ничего не сделал. На данный момент он структурирован следующим образом:

Код: Выделить всё

using API.Models;
using API.Models.Domain;
using API.Models.Domain.Auth;
using API.Models.Domain.Questions;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Question = API.Models.Domain.Questions.Question;
using Microsoft.AspNetCore.Identity;
using API.Models.Domain.Extra;

namespace API.Data
{
public class QuizzDbContext : IdentityDbContext
{
public QuizzDbContext(DbContextOptions options) : base(options)
{
}

public DbSet Questions { get; set; }
public DbSet Tests { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

modelBuilder.Entity()
.HasDiscriminator("QuestionType")
.HasValue("MultipleChoice")
.HasValue("TrueFalse")
.HasValue("Base");

modelBuilder.Entity()
.HasMany(t => t.Questions)
.WithMany();
}

public DbSet Answer { get; set; } = default!;
public DbSet Frameworks { get; set; }
}
}
Я использую .NET 8.0 и следующие пакеты:
[img]https: //i.sstatic.net/QsT9Ykvn.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/789 ... a-migratio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»