为了账号安全,请及时绑定邮箱和手机立即绑定

.NET Core:如何设置连接字符串?

.NET Core:如何设置连接字符串?

C#
Helenr 2021-11-07 19:36:38
我正在尝试使用 Blazor 的 CRUD 函数并按照一些文章来执行此操作。在文章中,有一部分我应该将我的连接放在上下文文件中,但它没有说明如何设置连接字符串。我将此代码行放在 launchSettings.json 中:{  "ConnectionStrings": {    "UserDatabase": "Server=DESKTOP-2K2A6GN;Database=Assignment4;Trusted_Connection=True;"  },  "iisSettings": {    "windowsAuthentication": false,    "anonymousAuthentication": true,    "iisExpress": {      "applicationUrl": "http://localhost:56244/",      "sslPort": 0    }  },  "profiles": {    "IIS Express": {      "commandName": "IISExpress",      "launchBrowser": true,      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development"      }    },    "Assignment4.Server": {      "commandName": "Project",      "launchBrowser": true,      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development"      },      "applicationUrl": "http://localhost:56248/"    }  }}我尝试将连接字符串添加到上下文文件中,但没有成功。public class UserContext : DbContext    {        public virtual DbSet<User> tblUser { get; set; }        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)        {            if (!optionsBuilder.IsConfigured)            {                optionsBuilder.UseSqlServer(@"UserDatabase");            }        }    }
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

假设连接字符串设置在appsetting.json文件中。将文件添加到项目中


appsetting.json


{

  "ConnectionStrings": {

    "UserDatabase": "Server=DESKTOP-2K2A6GN;Database=Assignment4;Trusted_Connection=True;"

  }

}

更新 DbContext 以便可以对其进行配置。


public class UserContext : DbContext {


    public UserContext(DbContextOptions<UserContext> options): base(options) {


    }


    public virtual DbSet<User> tblUser { get; set; }


}

您将Startup在ConfigureServices方法的类中配置 DbContext 。


public class Startup {


    public Startup(IHostingEnvironment env) {


        var builder = new ConfigurationBuilder()

            .SetBasePath(env.ContentRootPath)

            .AddJsonFile("appsettings.json");


        Configuration = builder.Build();

    }


    static IConfiguration Configuration { get; set; }


    public void ConfigureServices(IServiceCollection services) {    


        services.AddDbContext<UserContext>(options =>

            options.UseSqlServer(Configuration.GetConnectionString("UserDatabase"));

        );


        //...

    }


    // 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();

        }


        app.UseBlazor<Client.Program>();

    }

}


查看完整回答
反对 回复 2021-11-07
?
aluckdog

TA贡献1847条经验 获得超7个赞

您可以在文件 UserContext.cs 中更改


public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<AppDbContext>

    {

        public UserContext CreateDbContext(string[] args)

        {

            IConfiguration configuration = new ConfigurationBuilder()

                .SetBasePath(Directory.GetCurrentDirectory())

                .AddJsonFile("appsettings.json").Build();

            var builder = new DbContextOptionsBuilder<AppDbContext>();

            var connectionString = configuration.GetConnectionString("UserDatabase");

            builder.UseSqlServer(connectionString);

            return new AppDbContext(builder.Options);

        }

    }

在文件 Startup.cs 中


public void ConfigureServices(IServiceCollection services)

    {

        services.AddDbContext<UserContext>(options =>

               options.UseSqlServer(Configuration.GetConnectionString("UserDatabase"),

                   b => b.MigrationsAssembly("xxx.Data")));

    }


查看完整回答
反对 回复 2021-11-07
  • 2 回答
  • 0 关注
  • 368 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信