Невозможно подключиться к базе данных sql, используя abp framework в ядре asp .net - PullRequest
0 голосов
/ 13 апреля 2019

Я работаю в проекте 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());
    }
}

Буду признателен, если вы поможете мне в этой области. Какой шаг неверен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...