[英]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.