空のASP.NET Core 2テンプレートから新しいWebサイトを作成し、セットアップを支援する Microsoft Entity Frameworkチュートリアル に従います。ある時点で、コードを追加します。
_services.AddDbContext<SchoolContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
_
_Startup.cs
_のConfigureServices()
メソッドへ。私はこれを行いましたが、私のプロジェクトでは、Visual Studioは_Configuraiton.GetConnectionString
_のConfiguration
の下に小さな赤い線を表示します
using
ステートメントまたはパッケージが欠けていると思っていましたが、Visual Studio 2017のクイックアクションではusing
ステートメントを特定できず、_Microsoft.AspNetCore.All
_パッケージを持っていますインストールされているので、すべてのパッケージが必要です。
Configuration
が認識されない原因は何ですか?
編集:エラーは:
「構成」という名前は現在のコンテキストに存在しません
_public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<CollectionContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
_
DI経由でIConfiguration
オブジェクトを取得する必要があります。IConfiguration
引数をStartup
のコンストラクターに追加し、Configuration
プロパティに割り当てます。
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
それがテンプレートの一部であるため、あなたがそれを持っていないことに驚いています。
1#NuGetパッケージをインストールします:Microsoft.Extensions.Configuration
2#追加:using Microsoft.Extensions.Configuration;
3#この行をコードに追加したことに注意してください:public IConfiguration Configuration { get; }
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}