FileContextCore is a "Database"-Provider for Entity Framework Core and adds the ability to store information in files instead of being limited to databases. It enables fast developments because of the advantage of just copy, edit and delete files.
This framework bases on the idea of FileContext by DevMentor (https://github.com/pmizel/DevMentor.Context.FileContext)
- No database needed
- easy configuration
- rapid data-modelling, -modification
- share data through version-control
- supports all serializable .NET types
- integrated seamlessly into EF Core
- diferrent serializer supported (XML, JSON, CSV, Excel)
- supports encryption
- supports relations
!This extension is not intended to be used in production systems!
https://www.nuget.org/packages/FileContextCore/
PM > Install-Package FileContextCore
Configure EF Core
optionsBuilder.UseFileContext();or
services.AddEntityFramework().AddDbContext<Context>(options =>options.UseFileContext());For an Example check out: Example
By default the extension uses JSON-serialization and the DefaultFileManager
Serializes data using System.XML
optionsBuilder.UseFileContext(newFileContextCore.Serializer.XMLSerializer());//disable indentoptionsBuilder.UseFileContext(newFileContextCore.Serializer.XMLSerializer(false));Serializes data using CsvHelper (https://joshclose.github.io/CsvHelper/)
optionsBuilder.UseFileContext(newFileContextCore.Serializer.CSVSerializer());//change default delimiter (,)optionsBuilder.UseFileContext(newFileContextCore.Serializer.CSVSerializer(";"));Serializes data using Newtonsoft Json.NET (http://www.newtonsoft.com/json)
optionsBuilder.UseFileContext(newFileContextCore.Serializer.JSONSerializer());//change formattingoptionsBuilder.UseFileContext(newFileContextCore.Serializer.JSONSerializer(Newtonsoft.Json.Formatting.None));Saves the data into files
optionsBuilder.UseFileContext(fileManager:newFileContextCore.FileManager.DefaultFileManager());Encrypts the data and saves them into files
optionsBuilder.UseFileContext(fileManager:newFileContextCore.FileManager.EncryptedFileManager());//change keyoptionsBuilder.UseFileContext(fileManager:newFileContextCore.FileManager.EncryptedFileManager("key"));Saves files into an .xlsx-file and enables the quick editing of the data using Excel
Uses EEPlus implementation for .Net Core (https://github.com/VahidN/EPPlus.Core)
optionsBuilder.UseFileContext(newFileContextCore.CombinedManager.ExcelManager());//use passwordoptionsBuilder.UseFileContext(newFileContextCore.CombinedManager.ExcelManager("password"));To run on Linux-Systems
sudo apt-get update
sudo apt-get install libgdiplus
For customization you can implement the Interfaces ISerializer, IFileManager and ICombinedManager