Я пытаюсь получить строку подключения из файла appSettings.json
, но не могу.
Мой запуск такой:
namespace YangSoft_WebAPI
{
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional:false, reloadOnChange:true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional:true)
.AddEnvironmentVariables();
Configuration = builder.Build();
var enviroment = Configuration["ApplicationSettings:Enviroment"];
}
readonly string AllowControlOrigins = "Access-Control-Allow-Origin";
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettingsDAL>(Configuration.GetSection("ApplicationSettings"));
services.AddDbContextPool<yangsoftDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("local")));
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{
builder.WithOrigins("*");
});
options.AddPolicy(AllowControlOrigins,
builder =>
{
builder.WithOrigins("http://localhost:3000",
"https://localhost:3000",
"http://yangsoft-frontend.s3-website.us-east-2.amazonaws.com")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddSwaggerGen(c => {
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "Test API",
Description = "ASP.NET Core Web API"
});
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseCors(AllowControlOrigins);
app.UseHttpsRedirection();
app.UseMvc();
app.UseSwagger();
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Test API V1");
});
}
}
}
в моем запуске, как вы можете видеть, я инициализирую DBContext, после того, как в моем DBLogic у меня есть это:
public partial class yangsoftDBContext : DbContext
{
private readonly AppSettingsDAL _appSettings;
public yangsoftDBContext(DbContextOptions<yangsoftDBContext> options)
: base(options)
{
}
public virtual DbSet<Acceso> Acceso { get; set; }
public virtual DbSet<Actividad> Actividad { get; set; }
public virtual DbSet<Auditoria> Auditoria { get; set; }
......................
}
И вот пример метода в моем классе партнера в webLogic в DAL:
public int CountActiveSocios()
{
using (var context = new yangsoftDBContext())
{
try
{
return context.Socios.Where(r => r.Estado == true).Count();
}
catch
{
return 0;
}
}
}
Во всех местахчто я вызываю youngsoft DBContext .net возвращает эту ошибку:
"нет аргумента, учитывая, что он соответствует необходимому формальному параметру 'options'"