繁体   English   中英

Winforms .net 核心3连接字符串位置

[英]Winforms .net core 3 connection string location

在此处输入图像描述

我创建了一个 Winforms .net 核心 3 项目,我想知道应该在哪里放置连接字符串? 通常在基于 web 的核心项目中,我会将其放在 appsettings.json 中。

class DatabaseContext : DbContext
    {
        public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
        { }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);


        }

        public DbSet<InsModel> Models { get; set; }

    }

通常在 ASP.NET 内核中,配置连接字符串可以存储在 appsettings.json、环境变量、用户机密存储或其他配置源中。 请参阅配置部分

{
  "ConnectionStrings": {
   "BloggingDatabase": "Server= (localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},}

上下文通常在 Startup.cs 中配置,连接字符串从配置中读取。 请注意,GetConnectionString() 方法查找其键为 ConnectionStrings: 的配置值。 您需要导入Microsoft.Extensions.Configuration命名空间才能使用此扩展方法。

public void ConfigureServices(IServiceCollection services)
 {
    services.AddDbContext<BloggingContext>(options =>
      options.UseSqlServer(Configuration.GetConnectionString("BloggingDatabase")));
 }

是更多细节。

对于 windows forms 它应该是不同的。 您可以将配置文件添加到项目中以存储连接字符串。连接字符串应添加到应用程序的 App.config 文件(如果您使用的是 ASP.NET,则为 Web.config)

<configuration>
  <connectionStrings>
    <add name="BloggingDatabase"
         connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
  </connectionStrings>
</configuration>

存储在 App.config 中的 EF Core 连接字符串不需要 providerName 设置,因为数据库提供程序是通过代码配置的。

然后,您可以在上下文的 OnConfiguring 方法中使用 ConfigurationManager API 读取连接字符串。 您可能需要添加对 System.Configuration 框架程序集的引用才能使用此 API。

public class BloggingContext : DbContext
{
   public DbSet<Blog> Blogs { get; set; }
   public DbSet<Post> Posts { get; set; }

   protected override void OnConfiguring(DbContextOptionsBuilder 
   optionsBuilder)
        {
  optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["BloggingDatabase"].ConnectionString);
      }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM