WebApi и Console DBContext

У нас есть webapi, который использует первый подход к базе данных, используя структуру сущностей.

Теперь мы пытаемся включить консольное приложение, которое использует тот же DBContext из WebApi для проверки некоторых других данных.

в app.config:

  <connectionStrings>
<add name="DB"
  connectionString="Server=localhost;Initial Catalog=example;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
  providerName="System.Data.EntityClient"/>

При запуске program.cs я делаю следующий код:

    private static void InitializeDBContext()
    {
        Console.Write("Initializing Database Connection...");
        var connectionString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
        var dbrequestContext = new ConsoleRequestContext(connectionString, DateTime.Now, DateTime.Now);
        dbContext = new OurDBContext(dbrequestConterxt);
        Console.WriteLine("completed.");
    }

Ошибка System.ArgumentException: 'Ключевое слово не поддерживается:' сервер '.' То же самое касается переключения с сервера на источник данных в строке подключения.

Есть идеи, как правильно подойти к этому сценарию?

Обновление я попробовал следующее: Как вы используете внедрение зависимостей в консольном приложении asp.net?

       private static  IServiceProvider serviceProvider;

public Program(IApplicationEnvironment env, IRuntimeEnvironment runtime)
{
    var services = new ServiceCollection();
    ConfigureServices(services);
    serviceProvider = services.BuildServiceProvider();

    // Set up configuration sources.
    var builder = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json")
        .AddEnvironmentVariables();

    Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; set; }

private void ConfigureServices(IServiceCollection services)
{
    //Console.WriteLine(Configuration["Data:DefaultConnection:ConnectionString"]);

    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<DbContext>(options =>
            options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
}

но его поговорка не имеет конструктора с 0 аргументами.

0 ответов

Другие вопросы по тегам