Я работаю в проекте web api с архитектурой DDD в ядре asp .net, используя aspnetboilerplate, процесс похож на пример (https://aspnetboilerplate.com/Pages/Documents/Entity-Framework-Core),, но он не работает (dbContextOptions.IsConfigured = false)
исключение при подключении:
"Значение не может быть нулевым. Имя параметра:
UnitOfWork "
Класс слоёв:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddAbpDbContext<SampleDBContext>(options =>
{
DBContextOptionsConfigurer.Configure(options.DbContextOptions, options.ConnectionString);
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
return services.AddAbp<ApiModule>();
}
DBContextOptionsConfigurer class:
public static void Configure(DbContextOptionsBuilder<SampleDBContext> dbContextOptions,string connectionString)
{
//dbContextOptions.IsConfigured = false,ConnectionStrings is in appsettings.json
dbContextOptions.UseSqlServer(connectionString);
}
Класс контекста:
public class SampleDBContext : AbpDbContext
{
public DbSet<Language> Language { get; set; }
public DbSet<NewsLetter> NewsLetter { get; set; }
public DbSet<Post> Post { get; set; }
public DbSet<PostCategory> PostCategory { get; set; }
public SampleDBContext(DbContextOptions<SampleDBContext> options)
: base(options)
{
}
}
Api Модуль класса:
[DependsOn(typeof(ApplicationModule),
typeof(EntityFrameworkCoreModule),
typeof(AbpAspNetCoreModule))]
public class ApiModule : AbpModule
{
private readonly IConfigurationRoot _appConfiguration;
public ApiModule(IHostingEnvironment env)
{
_appConfiguration = AppSetting.Get(env.ContentRootPath, env.EnvironmentName);
}
public override void PreInitialize()
{
Configuration.DefaultNameOrConnectionString = _appConfiguration.GetConnectionString(Keys.ConnectionStringName);
Configuration.Modules.AbpAspNetCore().CreateControllersForAppServices(typeof(ApplicationModule).Assembly, moduleName: "app", useConventionalHttpVerbs: true);
}
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(typeof(ApiModule).GetAssembly());
}
}
Буду признателен, если вы поможете мне в этой области. Какой шаг неверен?