3 回答
TA贡献1775条经验 获得超11个赞
希望您将以下代码行添加到您的 app.cofig 文件中。
<connectionStrings>
<add name="DefaultConnection"
connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
</connectionStrings>
</configuration>
其中存储了数据库连接字符串。在 ConfigureServices() 中,您可以访问配置对象,这使您可以从 app.config 文件访问应用程序连接字符串。
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
TA贡献1797条经验 获得超6个赞
我将假设您正在使用与以下类似的功能:
WebHost
.CreateDefaultBuilder(args)
.ConfigureServices(Action<_> configureServices)
.Configure(Action<_> configureApp)
你会发现这个ConfigureServices方法有一个重载,它需要一个Action<WebHostBuilderContext, IServiceCollection>. 因此,您可以将函数更改为:
let configureServices (context:WebHostBuilderContext) (services:IServiceCollection) =
let config = context.Configuration
let connString = config.GetConnectionString "DefaultConnection"
services.AddDbContext<IdentityDbContext<IdentityUser>>(fun opts ->
opts.UseNpgsql(connString) |> ignore
) |> ignore
并将调用代码更改为此(注意Action<_>变为Action<_,_>):
WebHost
.CreateDefaultBuilder(args)
.ConfigureServices(Action<_,_> configureServices)
.Configure(Action<_> configureApp)
TA贡献1906条经验 获得超3个赞
看起来您正在使用一个Startup类来访问ConfigureServices(IServiceCollection services)方法中的配置。
如果你从头开始创建这个类,它不会Configuration神奇地有一个可用的对象。您需要创建一个将被注入的构造函数,然后在某处存储对它的引用。默认情况下,它是这样完成的:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
}
现在,您可以在类的方法和其他方法中Configuration按预期使用该属性ConfigureServices:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContextFactory<IdentityDbContext<IdentityUser>>(options =>
options.UseInMemoryDatabase(
Configuration.GetConnectionString("MyConnectionStringKey")));
}
- 3 回答
- 0 关注
- 318 浏览
添加回答
举报