O FileContextCore é um "banco de dados" -Provider para o Entity Framework Core e adiciona a capacidade de armazenar informações nos arquivos. Ele permite desenvolvimentos rápidos devido à vantagem de apenas copiar, editar e excluir arquivos.
Esta estrutura baseia -se na idéia de FileContext por Devmentor (https://github.com/pmizel/devmentor.context.filecontext)
! Esta extensão não se destina a ser usada em sistemas de produção!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
Em seu Startup.cs use isso:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring Você também pode substituir o método OnConfiguring do seu DBContext para aplicar as configurações:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} Para um exemplo simples, confira: exemplo
Você também pode brincar com este exemplo no DotNetfiddle.net: Demo
Por padrão, a extensão usa JSON -Serialization e o DefaultFileManager
Você pode usar um serializador diferente para suportar outros métodos de serialização.
Serializa dados usando o System.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;Serializa os dados usando csvhelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;Serializa os dados usando o Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;ou apenas
optionsBuilder.UseFileContextDatabase();
Serializa os dados para o BSON usando o Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;Salva arquivos em um .xlsx-file e permite a edição rápida dos dados usando o Excel
Usa a implementação do EEPLUS para .Net Core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;Se você deseja proteger o arquivo do Excel com um uso de senha:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Para executar em linux-systems
sudo apt-get update
sudo apt-get install libgdiplus
O gerenciador de arquivos controla como os arquivos são armazenados.
O gerenciador de arquivos padrão apenas cria arquivos normais.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;O gerenciador de arquivos criptografado criptografa os arquivos com uma senha.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; Por padrão, os arquivos são armazenados em uma subpasta do seu aplicativo em execução chamado appdata . Se você deseja controlar esse comportamento, também pode usar definir um local personalizado.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; Se nada estiver configurado, todos os arquivos do seu aplicativo serão armazenados em uma pasta plana. Opcionalmente, você pode definir um nome para o seu banco de dados e todos os dados correspondentes salvarão em uma subpasta. Portanto, você pode usar o FileContext com várias configurações de DBContext.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; Você pode criar serializador personalizado, gerenciador de arquivos e gerente da loja, se desejar.
Se você deseja criar um serializador personalizado, implemente o ISerializer da interface.
Se você deseja controlar o armazenamento de dados implementar a interface IFileManager .
Se você deseja criar um gerente de loja que implemente IStoreManager .
Depois de adicionar um provedor personalizado, você deve adicioná -lo como uma dependência transitória na injeção de dependência.
Sinta -se à vontade para criar um PR com seu novo provedor e eu o adicionarei ao FileContextCore.
| Versão FileContext | Versão central da EF |
|---|---|
| 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 o EF Core atualmente não suporta para definir um nome de tabela personalizado usando anotações nos modelos. Use o OnModelCreating -Method para definir um nome de tabela personalizado.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} Isso armazenará os dados em um arquivo chamado custom_user_table.json , por exemplo.
Morris Janatzek (Morrisjdev)