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
- supports multiple databases
!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("xml");
Serializes data using CsvHelper (https://joshclose.github.io/CsvHelper/)
optionsBuilder.UseFileContext("csv");
Serializes data using Newtonsoft Json.NET (http://www.newtonsoft.com/json)
optionsBuilder.UseFileContext("json");
Serializes data to bson using Newtonsoft Json.NET (http://www.newtonsoft.com/json)
optionsBuilder.UseFileContext("bson");
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("excel");
//use password
optionsBuilder.UseFileContext("excel:password");
To run on Linux-Systems
sudo apt-get update
sudo apt-get install libgdiplus
Saves the data into files
optionsBuilder.UseFileContext("json", "default");
Encrypts the data and saves them into files
optionsBuilder.UseFileContext("json", "encrypted:password");
You can define a name for your database and all the corresponding data will saved in a subfolder. So you are able to use FileContext with multiple DbContext-configurations.
optionsBuilder.UseFileContext(databasename: "database");