Проект сделан по трехуровневой архитектуре. Нужно, что бы Entity Framework создал базу данных по классу контекста и внедрить через Dependency Injection этот класс в классы репозиториев. Структура проекта:
CarServiceAssignment.Presentation - ASP.NET Core MVC Project
CarServiceAssignment.BLL - .NET Core class library
CarServiceAssignment.DAL - .NET Core class library
У меня есть следующий класс контекста(в CarServiceAssignment.DAL):
public class CarServiceContext : DbContext
{
public DbSet<Car> Cars { get; set; }
public DbSet<Owner> Owners { get; set; }
public CarServiceContext(DbContextOptions<CarServiceContext> options)
:base(options)
{
Database.EnsureCreated();
}
}
и класс отвечающий за регистрацию сервисов(CarServiceAssignment.BLL):
public static class ServiceProvider
{
public static void AddBllServices(this IServiceCollection services)
{
services.AddScoped<ICarService, CarService>();
}
public static void AddDalServices(this IServiceCollection services)
{
services.AddScoped<CarServiceContext>();
services.AddScoped<IUnitOfWork, EFUnitOfWork>();
}
}
Регистрация сервисов происходит в классе Startup, метод - (в CarServiceAssignment.Presentation):
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential
cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddDalServices();
services.AddBllServices();
}
Когда я вызываю метод контрллера, который взаимодействует с базой данных через класс CarServiceContext, то получаю следующую ошибку:
InvalidOperationException: Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbContextOptions`1[CarServiceAssignment.DAL.EF.CarServiceContext]' while attempting to activate 'CarServiceAssignment.DAL.EF.CarServiceContext'.
Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateArgumentCallSites(Type serviceType, Type implementationType, CallSiteChain callSiteChain, ParameterInfo[] parameters, bool throwIfCallSiteNotFound)
Но если я полностью удаляю следующий конструктор из класса контекста:
public CarServiceContext(DbContextOptions<CarServiceContext> options) :base(options)
{
Database.EnsureCreated();
}
, то ошибки не будет, но и база данных не создается.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу программу на C#Суть программы в скачивании определенных компонентов, таких как например:
И так проблема заключается в том что у меня есть UserControl на котором есть кнопка, у юзер контрола фон - transparent у кнопки тоже, но при добавлении...
хотел бы у вас узнать ,как написать данную программу, я новичок на си шарпе, поэтому еще не знаю как с ним работатьЕсли вы можете подскажите...