FileContextCore-это «база данных»-провален для основного ядра Entity и добавляет возможность хранить информацию в файлах. Это обеспечивает быстрые разработки из -за преимущества просто копирования, редактирования и удаления файлов.
Эта структура основывается на идее FileContext от Devmentor (https://github.com/pmizel/devmentor.context.filecontext)
! Это расширение не предназначено для использования в производственных системах!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
В вашем Startup.cs используйте это:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring Вы также можете переопределить метод OnConfiguring вашего DBContext, чтобы применить настройки:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} Для простого примера. Проверьте: пример
Вы также можете поиграть с этим примером на dotnetfiddle.net: демо
По умолчанию расширение использует JSON -сериализацию и DefaultFileManager
Вы можете использовать другой сериализатор для поддержки других методов сериализации.
Сериализует данные с использованием System.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;Сериализует данные с использованием CSVHelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;Сериализует данные с использованием Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;или просто
optionsBuilder.UseFileContextDatabase();
Сериализует данные BSON с помощью Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;Сохраняет файлы в.
Использует реализацию eeplus для .net core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;Если вы хотите получить файл Excel с использованием пароля:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Запустить на Linux-символах
sudo apt-get update
sudo apt-get install libgdiplus
Диспетчер файлов управляет тем, как хранятся файлы.
Файл -менеджер по умолчанию просто создает нормальные файлы.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;Зашифрованный файловый диспетчер шифрует файлы с помощью пароля.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; По умолчанию файлы хранятся в подпапке вашего запущенного приложения под названием appdata . Если вы хотите контролировать это поведение, вы также можете использовать определение пользовательского местоположения.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; Если ничего не настроено, все файлы вашего приложения будут храниться в плоской папке. При желании вы можете определить имя для вашей базы данных, и все соответствующие данные будут сохранены в подпапке. Таким образом, вы можете использовать FileContext с несколькими конфигурациями DBContext.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; Вы можете создать пользовательский сериализатор, диспетчер файлов и менеджер магазина, если хотите.
Если вы хотите создать пользовательский сериализатор, реализуйте интерфейс ISerializer .
Если вы хотите управлять хранением интерфейса Data Interface IFileManager .
Если вы хотите создать менеджер магазина, который выполняет оба реализации IStoreManager .
После добавления пользовательского поставщика вы должны добавить его в качестве переходной зависимости в инъекции зависимости.
Не стесняйтесь создавать пиар со своим новым провайдером, и я добавлю его в FileContextCore.
| Версия FileContext | EF Core версия |
|---|---|
| 3.4.* | 3.1.0 |
| 3.3.* | 3.0.0 |
| 3.2.* | 3.0.0 |
| 3.0.1/3.0.0/2.2.6 | 2.2.6 |
| 2.2.0 | 2.2.0 |
Похоже, что EF Core в настоящее время не поддерживает для определения пользовательского имени таблицы с использованием аннотаций на моделях. Используйте OnModelCreating -method, чтобы определить пользовательское имя таблицы.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} Это будет хранить данные в файле с именем custom_user_table.json , например.
Моррис Джанатик (Морририсдев)