Я реализую проект с asp. net ядром. У меня есть несколько классов контроллеров. Я создал их по методологии CRUD. У меня есть контроллер под названием «ApiapplicantsController», с которым его связанная модель Apiapplicant представляет собой соединительную таблицу для Api и таблиц заявителей. В файле запуска я указал следующие выражения в качестве шаблона URL:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.EntityFrameworkCore;
using CSDDashboard.Data;
namespace CSDDashboard
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<CSDDashboardContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("CSDDashboardContext")));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// 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.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Apiapplicants}/{action=Index}/{id?}");
});
}
}
}
Однако после запуска проекта и ввода URL я получаю следующую ошибку:
An Произошло необработанное исключение при обработке запроса. InvalidOperationException: не удается разрешить службу для типа 'CSDDashboard.Models.CSSDDashboardContext' при попытке активировать 'CSDDashboard.Controllers.ApiapplicantsController'.
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ServicePerviceService.GetServicePlayer Type () requiredBy, bool isDefaultParameterRequired)
Я создал строку подключения в файле appsetting и дал ей имя переменной CSDDashboard. Содержимое файла appseting выглядит следующим образом:
{
"AllowedHosts": "*",
"ConnectionStrings": {
"CSDDashboardContext": "Server=MOUSA-Z2;Database=CSSDDashboard; Trusted_Connection=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
} Имя моего класса DBContext - CSSDDashboardContext. Я создал все свои классы контроллеров по методологии CRUD. Однако только один из моих контроллеров использует переменную CSDDashboard в качестве класса контекста. И когда я запускаю проект и даю URL для вызова действия в Vwreports, программа работает правильно.
public class VwreportsController : Controller
{
private readonly CSDDashboardContext _context;
public VwreportsController(CSDDashboardContext context)
{
_context = context;
}
Но в других контроллерах CSDDashboard неизвестен, и система использует CSSDDashboard в качестве контекста, и когда я Позвоните одному из этих контроллеров, указанная ошибка будет показана мне. Ниже приведен пример для одного из других контроллеров с ошибкой:
public class ApisController : Controller
{
private readonly CSSDDashboardContext _context;
public ApisController(CSSDDashboardContext context)
{
_context = context;
}
Буду признателен, если кто-нибудь поможет мне решить проблему.