FileContextCore es un proveedor de "base de datos" para Entity Framework Core y agrega la capacidad de almacenar información en los archivos. Permite desarrollos rápidos debido a la ventaja de simplemente copiar, editar y eliminar archivos.
Este marco basa en la idea de fileContext por devmentor (https://github.com/pmizel/devmentor.context.filecontext)
¡! ¡Esta extensión no está destinada a ser utilizada en los sistemas de producción!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
En su Startup.cs usa esto:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring También puede anular el método OnConfiguring de su DBContext para aplicar la configuración:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} Para un ejemplo simple, consulte: Ejemplo
También puede jugar con este ejemplo en dotnetfiddle.net: demo
Por defecto, la extensión usa JSON -serialization y el DefaultFileManager
Puede usar un serializador diferente para apoyar otros métodos de serialización.
Serializa datos usando System.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;Serializa datos utilizando csvhelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;Serializa datos utilizando Newtonsoft Json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;o simplemente
optionsBuilder.UseFileContextDatabase();
Serializa datos a BSON usando Newtonsoft Json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;Guarda archivos en un archivo .xlsx y habilita la edición rápida de los datos utilizando Excel
Utiliza la implementación de EePlus para .NET Core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;Si desea asegurar el archivo de Excel con un uso de contraseña:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Para ejecutarse en Linux-Systems
sudo apt-get update
sudo apt-get install libgdiplus
El Administrador de archivos controla cómo se almacenan los archivos.
El administrador de archivos predeterminado solo crea archivos normales.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;El Administrador de archivos cifrado encripta los archivos con una contraseña.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; Por defecto, los archivos se almacenan en una subcarpeta de su aplicación en ejecución llamada appdata . Si desea controlar este comportamiento, también puede usar Definir una ubicación personalizada.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; Si no se configura nada, todos los archivos de su aplicación se almacenarán en una carpeta plana. Opcionalmente, puede definir un nombre para su base de datos y todos los datos correspondientes se guardarán en una subcarpeta. Por lo tanto, puede usar FileContext con múltiples configuraciones de DBContext.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; Puede crear serializador personalizado, administrador de archivos y administrador de tiendas si lo desea.
Si desea crear un serializador personalizado, implementa la interfaz ISerializer .
Si desea controlar el almacenamiento de la interfaz de implementación de datos IFileManager .
Si desea crear un administrador de la tienda que implementa IStoreManager .
Después de agregar un proveedor personalizado, debe agregarlo como una dependencia transitoria en la inyección de dependencia.
Siéntase libre de crear un PR con su nuevo proveedor y lo agregaré a FileContextCore.
| Versión de fileContext | Versión de 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 |
Parece que EF Core actualmente no es compatible para definir un nombre de tabla personalizado utilizando anotaciones en modelos. Use el método OnModelCreating para definir un nombre de tabla personalizado.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} Esto almacenará los datos en un archivo llamado custom_user_table.json , por ejemplo.
Morris Janatzek (Morrisjdev)