Проблема при запуске миграции EFC#

Место общения программистов C#
Ответить
Anonymous
 Проблема при запуске миграции EF

Сообщение Anonymous »

Чтобы дать вам некоторое представление, я пытался узнать больше о .NET и EF ORM.
Но кажется, что чем больше я стараюсь, тем меньше понимаю.
На данный момент я все еще не могу надежно создать шаблон для простого приложения. Иногда Он ломается, иногда работает, иногда я просто не знаю, что делать.
Проблема, с которой я чаще всего сталкиваюсь, заключается в следующем:

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

Unable to create a 'DbContext' of type 'RuntimeType'. The exception 'Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbContextOptions`1[MVC___FreeCodeCamp.Data.MyAppContext]' while attempting to activate 'MVC___FreeCodeCamp.Data.MyAppContext'.' was thrown while attempting to create an instance. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728
Теперь первые несколько раз я это понимаю. Черт, я даже «исправил» это. Но дело в том... Я этого не понимаю. Почему это выходит? Что вообще означает, когда мне сообщают, что я использую другой шаблон проектирования?
Вероятно, это означает, что я делаю это неправильно. И я это понимаю. Но в настоящее время я копирую учебник, который видел.
Поэтому я не уверен, действительно ли здесь проблема заключается в шаблоне проектирования.
Это соответствующие части моего кода:
/Data/Context

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

using Microsoft.EntityFrameworkCore;
using MVC___FreeCodeCamp.Models;

namespace MVC___FreeCodeCamp.Data;

public class MyAppContext : DbContext
{
public MyAppContext(DbContextOptions options) :base(options) { }

public DbSet Items { get; set; }

}
// соответствующий код program.cs:

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

builder.Services.AddDbContext(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultString")));
// Строка подключения:

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

  "ConnectionStrings": {
"DefaultString": "Server=localhost,1433;Database=FreeCodeCampMvc;User ID=sa;Password=;Trusted_Connection=False;Encrypt=False;"
}
Также на всякий случай понадобится простая модель:

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

namespace MVC___FreeCodeCamp.Models;

public class Item
{
public int Id { get; set; }
public string Name { get; set; }
}
Как видите, все очень просто. Но это не работает. Честно говоря, в настоящее время я запускаю это приложение в .NET 9, Ubuntu 24.04 на JetBrains, и у меня есть SQL Server, работающий локально в контейнере докеров. Отсюда и порт в строке подключения.
Но раньше это работало! У меня установлены все соответствующие nugets EF. Я просто не понимаю. Почему?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -migration
Ответить

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

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

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

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

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