> For the complete documentation index, see [llms.txt](https://nas-3.gitbook.io/nasdatabase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nas-3.gitbook.io/nasdatabase/database/class-databasemanager.md).

# class DatabaseManager

{% hint style="info" %}
NASDatabase.Server.Data.DatabaseSettings.DatabaseManager
{% endhint %}

Этот класс предоставляет основной функционал для создания проекта в файловой среде операционной системы. Используется совместно с [IFileWorker](/nasdatabase/interfaces/ifileworker.md) и [DatabaseLoader](/nasdatabase/vspomogatelnyi-instrumentarii/loaders.md) для создания проекта, сохранения и загрузки данных в базу. Класс необходимо использовать когда нужно создать проект БД или же загрузить данные с носителя.&#x20;

### Использование

Инициализация базы данных обязательно должно начинаться со создания экземпляра этого класса. С последующим вызовом метода  `CreateDatabase<T>` или же  `LoadDB<T>`.&#x20;

{% tabs %}
{% tab title="CreateDatabase" %}

```csharp
var DBM = new DatabaseManager();

var settings = new DatabaseSettings("Test","D:\\", 2);

var DB = DBM.CreateDatabase<Database>(settings);
SaveKey(DB.Settings.Key, "D:\\Test\\Key");

//SaveKey(string Key, string path) - ваш код по сохранению ключа для дешифрации базы
```

{% endtab %}

{% tab title="LoadDatabase" %}

```csharp
var DBM = new DatabaseManager();

string path = "D:\\Test";

var DB = DBM.LoadDB<Database>(path, LoadKey($"{path}\\Key"),1);
//LoadKey(path) - ваш загрузчик ключа для дешифрации базы
```

{% endtab %}
{% endtabs %}
