Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Большинству поставщиков баз данных требуется строка подключения для подключения к базе данных. Строка подключения:
- Может содержать конфиденциальную информацию, которая должна быть защищена.
- Может понадобиться изменение, когда приложение переходит в разные среды, такие как разработка, тестирование и продакшн.
Дополнительные сведения см. в разделе "Безопасные потоки проверки подлинности"
ASP.NET Core
Конфигурация ASP.NET Core может хранить строки подключения для различных поставщиков.
- В
appsettings.Development.jsonилиappsettings.jsonфайле. - В переменной среды
- Использование Azure Key Vault
- Использование инструмента управления секретами
Warning
Секреты никогда не следует добавлять в файлы конфигурации.
Например, средство диспетчера секретов может хранить пароль базы данных. При использовании scaffolding и Secret Manager строка подключения состоит из Name=<database-alias>.
Дополнительные сведения см. в разделе "Конфигурация" документации по ASP.NET Core.
dotnet user-secrets init
dotnet user-secrets set ConnectionStrings:YourDatabaseAlias "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=YourDatabase"
Затем в scaffolding используйте строки подключения, состоящие из Name=<database-alias>.
dotnet ef dbcontext scaffold Name=ConnectionStrings:YourDatabaseAlias Microsoft.EntityFrameworkCore.SqlServer
Warning
В этой статье используется локальная база данных, которая не требует проверки подлинности пользователя. Рабочие приложения должны использовать самый безопасный поток проверки подлинности. Дополнительные сведения о проверке подлинности для развернутых тестовых и рабочих приложений см. в разделе "Безопасные потоки проверки подлинности".
В следующем примере показана строка подключения, хранящаяся в appsettings.json.
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
Контекст обычно настраивается с Program.cs помощью строка подключения считывания из конфигурации. Обратите внимание, что метод GetConnectionString ищет значение конфигурации, ключ которого имеет значение ConnectionStrings:<connection string name>.
GetConnectionString требуется пространство имен Microsoft.Extensions.Configuration .
var conString = builder.Configuration.GetConnectionString("BloggingContext") ??
throw new InvalidOperationException("Connection string 'BloggingContext'" +
" not found.");
builder.Services.AddDbContext<BloggingContext>(options =>
options.UseSqlServer(conString));
Приложения WinForms и WPF
Приложения WinForms, WPF и ASP.NET 4 имеют проверенный и испытанный шаблон строки подключения. Следует добавить строку подключения в файл вашего приложения App.config или Web.config при использовании ASP.NET. Строка подключения, содержащая конфиденциальную информацию, например имя пользователя и пароль, должна защищать содержимое файла конфигурации с помощью защищенной конфигурации.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="BloggingDatabase"
connectionString="Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" />
</connectionStrings>
</configuration>
Tip
Параметр providerName не требуется для строк подключения EF Core, хранящихся в App.config, так как поставщик базы данных настроен с помощью кода.
Затем можно прочитать строка подключения с помощью ConfigurationManager API в методе контекстаOnConfiguring. Чтобы использовать этот API, может потребоваться добавить ссылку на сборку платформы System.Configuration.
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);
}
}
Универсальная платформа Windows (UWP)
Строки подключения в приложении UWP обычно являются подключением SQLite, которое просто указывает локальное имя файла. Обычно они не содержат конфиденциальную информацию, и их не нужно изменять, когда приложение развёртывается. Таким образом, эти строка подключения обычно хорошо остаться в коде, как показано ниже. Если вы хотите переместить их из кода, UWP поддерживает концепцию параметров, см . в разделе "Параметры приложения" документации по UWP.
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=blogging.db");
}
}