FileConTextCore est une "base de données" -Provider pour l'entité Core Framework et ajoute la possibilité de stocker des informations dans des fichiers. Il permet des développements rapides en raison de l'avantage de simplement copier, modifier et supprimer des fichiers.
Ce framework bases sur l'idée de FileContext par Devmentor (https://github.com/pmizel/devmentor.context.fileContext)
! Cette extension n'est pas destinée à être utilisée dans les systèmes de production!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
Dans votre Startup.cs utilisez ceci:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring Vous pouvez également remplacer la méthode OnConfiguring de votre DBContext pour appliquer les paramètres:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} Pour un exemple simple, consultez: Exemple
Vous pouvez également jouer avec cet exemple sur dotnetfiddle.net: démo
Par défaut, l'extension utilise JSON -Serialization et le DefaultFileManager
Vous pouvez utiliser un sérialiseur différent pour prendre en charge d'autres méthodes de sérialisation.
Sérialise les données à l'aide de System.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;Sérialise les données à l'aide de csvhelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;Sérialise les données à l'aide de Newtonsoft Json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;ou juste
optionsBuilder.UseFileContextDatabase();
Sérialise les données à BSON à l'aide de Newtonsoft Json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;Enregistre les fichiers dans un .xlsx-file et permet l'édition rapide des données à l'aide d'Excel
Utilise l'implémentation EEPLUS pour .NET Core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;Si vous souhaitez sécuriser le fichier Excel avec un mot de passe Utiliser:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Pour fonctionner sur Linux-Systems
sudo apt-get update
sudo apt-get install libgdiplus
Le gestionnaire de fichiers contrôle la façon dont les fichiers sont stockés.
Le gestionnaire de fichiers par défaut crée simplement des fichiers normaux.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;Le gestionnaire de fichiers chiffré crypte les fichiers avec un mot de passe.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; Par défaut, les fichiers sont stockés dans un sous-dossier de votre application en cours d'exécution appelée appdata . Si vous souhaitez contrôler ce comportement, vous pouvez également utiliser Définir un emplacement personnalisé.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; Si rien n'est configuré, tous les fichiers de votre application seront stockés dans un dossier plat. Vous pouvez éventuellement définir un nom pour votre base de données et toutes les données correspondantes seront enregistrées dans un sous-dossier. Vous pouvez donc utiliser FileContext avec plusieurs configurations DBContext.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; Vous pouvez créer un sérialiseur personnalisé, un gestionnaire de fichiers et un gestionnaire de magasin si vous le souhaitez.
Si vous souhaitez créer un sérialiseur personnalisé implémentez l'interface ISerializer .
Si vous souhaitez contrôler le stockage des données Implémentation de l'interface IFileManager .
Si vous souhaitez créer un gestionnaire de magasins qui implémente à la fois IStoreManager .
Après avoir ajouté un fournisseur personnalisé, vous devez l'ajouter en tant que dépendance transitoire dans l'injection de dépendance.
N'hésitez pas à créer un RP avec votre nouveau fournisseur et je l'ajouterai à FileContextCore.
| Version FileContext | Version 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 |
Il semble que EF Core ne prend actuellement pas en charge pour définir un nom de table personnalisé à l'aide d'annotations sur les modèles. Utilisez la méthode OnModelCreating pour définir un nom de table personnalisé.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} Cela stockera les données dans un fichier appelé custom_user_table.json par exemple.
Morris Janatzek (Morrisjdev)