当前位置: 首页 > 编程语言 > C#

C#学习教程:.NETCoregetsconnectionstringfromappsettings.json分享

时间:2023-04-10 21:58:34 C#

.NETCoregetsconnectionstringfromappsettings.json达到。所以我想直接将连接字符串写入OnConfiguring方法:publicclassApplicationContext:DbContext{publicDbSetUsers{get;放;}protectedoverridevoidOnConfiguring(DbContextOptionsBuilderoptionsBuilder){optionsBuilder.UseSqlServer("connectionstringfromappsettings.json");base.OnConfiguring(optionsBuilder);}}启动类:publicvoidConfigureServices(IServiceCollectionservices){services.AddDbContext();服务.AddMvc();如何从appsettings.json中提取连接字符串到ApplicationContext类?我不想为ApplicationContext类创建任何构造函数。所以我想直接将连接字符串写入OnConfiguring方法:Howtoextractconnectionstringfromappsettings.jsontoApplicationContextclass?我不想为ApplicationContext类创建任何构造函数。您可以通过IOptions使用OptionsPattern,但最简单的方法是在ApplicationContext构造函数中使用DI;)请阅读以下文章:假设您有.NETCore应用程序并且您的appsettings.json文件如下所示:{"Logging":{“IncludeScopes”:假,“LogLevel”:{“默认”:“调试”,“系统”:“信息”,“微软”:“信息”}},“生产”:{“SqliteConnectionString”:“文件名=./MyDatabase.sqlite"}}您可以从Startup.cs获取SqliteConnectionString值,如下所示:publicvoidConfigureServices(IServiceCollectionservices){varconnection=Configuration["Production:SqliteConnectionString"];services.AddDbContext(options=>options.UseSqlite(connection));....}然后在您的DBContext中,您应该添加接受DbContextOptions构造函数DbContextOptions:publicclassMyContext:DbContext{publicMyContext(DbContextOptionsoptions):base(options){}...}.NETCore2.0添加这个类://RequiresNuGetpackageMicrosoft.Extensions.Configuration.JsonusingMicrosoft.Extensions.Configuration;使用System.IO;命名空间RutarBackgroundServices.AppsettingsJson{p公共静态类AppSettingsJson{公共静态字符串ApplicationExeDirectory(){varlocation=System.Reflection.Assembly.GetExecutingAssembly().Location;varappRoot=Path.GetDirectoryName(location);返回应用根目录;}publicstaticIConfigurationRootGetAppSettings(){stringapplicationExeDirectory=ApplicationExeDirectory();varbuilder=newConfigurationBuilder().SetBasePath(applicationExeDirectory).AddJsonFile("appsettings.json");返回构建器。构建();从“appsettings.json”文件中获取键“MssqlConnectionString”的值:varappSettingsJson=AppSettingsJson.GetAppSettings();varconnectionString=appSettingsJson["MssqlConnectionString"];在项目的根目录中创建文件“appsettings.json”:{"MssqlConnectionString":"Server=yourip;Database=yourdbname;UserId=yourusername;Password=yourpassword;Pooling=true;","Db2ConnectionString":"Database=yourdbname;UserID=yourusername;Password=yourpassword;Server=yourip:yourport","SomeOtherKey":"SomeOtherValue"}您可以使用工厂模式来解析DbContextpublicinterfaceITenantDbContextFactory{ApplicationContextCreate(stringtenantId);}publicclassTenantDbContextFactory(){privateApplicationContext上下文;publicTenantDbContextFactory(){}publicApplicationContextCreate(stringtenantId){if(this.context==nullion){varGetConnectionForString=(tenantId);vardbContextBuilder=newDbContextOptionsBuilder();dbContextBuilder.UseSqlServer(connectionString);this.context=newApplicationContext(dbContextBuilder);}返回this.context;在启动时:services.AddDbContext();服务.AddScoped();你的服务或控制器:以上是C#学习教程:.NETCore从appsettings.json获取连接字符串分享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注publicHomeControler(ITenantDbContextFactorytenantDbContextFactory){this.dbFactory=tenantDbContextFactory;}publicvoidAction(){vardbContext=this.dbFactory.Create("tenantA")yourcontextheredbContext...}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: