FileContextCore ist eine "Datenbank" -Provider für Entity Framework Core und fügt die Möglichkeit hinzu, Informationen in Dateien zu speichern. Es ermöglicht schnelle Entwicklungen aufgrund des Vorteils, Dateien zu kopieren, zu bearbeiten und zu löschen.
Dieser Framework basiert auf der Idee von fileContext von Deventor (https://github.com/pmizel/devmentor.context.fileContext)
Diese Erweiterung soll nicht in Produktionssystemen verwendet werden!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
In Ihrem Startup.cs verwenden Sie dies:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring -Methoden Sie können auch die OnConfiguring -Methode Ihres DBContext überschreiben, um die Einstellungen anzuwenden:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} Für ein einfaches Beispiel überprüfen Sie: Beispiel: Beispiel
Sie können auch mit diesem Beispiel auf dotnetfiddle.net: Demo herumspielen
Standardmäßig verwendet die Erweiterung JSON -Serialisierung und den DefaultFileManager
Sie können einen anderen Serialisierer verwenden, um andere Serialisierungsmethoden zu unterstützen.
Serialisiert Daten mit System.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;Serialisierte Daten mit CSVHelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;Serialisierte Daten mit Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;oder gerecht
optionsBuilder.UseFileContextDatabase();
Serialisierte Daten zu BSON mit Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;Speichert Dateien in ein .xlsx-Datei und ermöglicht die schnelle Bearbeitung der Daten mithilfe von Excel
Verwendet die EEPLUS -Implementierung für .NET Core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;Wenn Sie die Excel -Datei mit einem Kennwort verwenden möchten:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Auf Linux-Systemen laufen
sudo apt-get update
sudo apt-get install libgdiplus
Der Dateimanager steuert, wie die Dateien gespeichert werden.
Der Standard -Dateimanager erstellt nur normale Dateien.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;Der verschlüsselte Dateimanager verschlüsselt die Dateien mit einem Kennwort.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; Standardmäßig werden die Dateien in einem Unterordner Ihrer ausgeführten Anwendung namens appdata gespeichert. Wenn Sie dieses Verhalten steuern möchten, können Sie auch einen benutzerdefinierten Ort definieren.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; Wenn nichts konfiguriert wird, werden alle Dateien Ihrer Anwendung in einem flachen Ordner gespeichert. Sie können optional einen Namen für Ihre Datenbank definieren und alle entsprechenden Daten werden in einem Unterordner gespeichert. Sie können also FileContext mit mehreren DBContext-Konfigurationen verwenden.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; Sie können benutzerdefinierte Serializer, Dateimanager und Store Manager erstellen, wenn Sie möchten.
Wenn Sie einen benutzerdefinierten Serializer erstellen möchten, implementieren Sie den Schnittstellen ISerializer .
Wenn Sie das Speichern von Daten implementieren möchten, können Sie die Schnittstelle IFileManager implementieren.
Wenn Sie einen Store Manager erstellen möchten, der beide IStoreManager implementiert.
Nach dem Hinzufügen eines benutzerdefinierten Anbieters müssen Sie ihn als vorübergehende Abhängigkeit in der Abhängigkeitsinjektion hinzufügen.
Fühlen Sie sich frei, mit Ihrem neuen Anbieter eine PR zu erstellen, und ich werde ihn fileContextCore hinzufügen.
| FileContext -Version | EF -Kernversion |
|---|---|
| 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 |
Es scheint, dass EF Core derzeit nicht unterstützt, einen benutzerdefinierten Tabellennamen mit Anmerkungen zu Modellen zu definieren. Verwenden Sie den OnModelCreating -Method, um einen benutzerdefinierten Tabellennamen zu definieren.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} Dadurch wird die Daten in einer Datei namens custom_user_table.json zum Beispiel gespeichert.
Morris Janatzek (Morrisjdev)