Я пытаюсь использовать Ef Core в своем проекте.
Структура немного отличается, в том смысле, что я не использую EfCore, например WebApi.csproj.На самом деле у меня есть другая DLL.и DependenciesResolver.dll, который обрабатывает все мои инъекции зависимостей.
В моем EfCore.dll я установил оба
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.SqlServer
Теперь, когда я пытаюсь запустить команду (DLL, в которой я работаю, это EfCore.dll)
Add-Migration Name
Я получаю это:
Произошла ошибка при доступеIWebHost по классу «Программа».Продолжая без поставщика услуг приложения.Ошибка: ссылка на объект не установлена на экземпляр объекта.Невозможно создать объект типа «StoreContext».Добавьте реализацию IDesignTimeDbContextFactory к проекту или посмотрите https://go.microsoft.com/fwlink/?linkid=851728 для дополнительных шаблонов, поддерживаемых во время разработки.
Структура sln выглядит следующим образом
WebApi |EfCore.dll |DependencyResolver.dll и я хочу сохранить его таким образом, я не хочу разрешать использование EfCore в моем WebApi.
Какое разрешение для этой проблемы?
Если это помогает в EfCore.dll У меня есть это.
public sealed partial class StoreContext : DbContext, IStoreContext
{
private string _connectionString;
public StoreContext(string connectionString) : base()
{
_connectionString = connectionString;
Database.EnsureCreated();
}
/// db.tbls
public DbSet<Order> Orders { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.AddOrderConfiguration();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(_connectionString);
}
}
, который вызывается DependencyResolver следующим образом
private DependenciesResolver RegisterInfrastructure()
{
_serviceCollection.AddScoped<StoreContext>(factory => new StoreContext(_connectionString));
return this;
}
, а затем DependencyResolver вызывается WebApi