FileContextCore adalah "database" -Provider for Entity Framework Core dan menambahkan kemampuan untuk menyimpan informasi dalam file. Ini memungkinkan perkembangan cepat karena keuntungan saja menyalin, mengedit, dan menghapus file.
Kerangka kerja ini basis pada ide filecontext oleh deventor (https://github.com/pmizel/devmentor.context.fileContext)
! Ekstensi ini tidak dimaksudkan untuk digunakan dalam sistem produksi!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
Di Startup.cs Anda. Gunakan ini:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring Anda juga dapat mengganti metode OnConfiguring dbContext Anda untuk menerapkan pengaturan:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} Untuk contoh sederhana, periksa: contoh
Anda juga dapat bermain -main dengan contoh ini di dotnetfiddle.net: demo
Secara default ekstensi menggunakan JSON -serialization dan DefaultFileManager
Anda dapat menggunakan serializer yang berbeda untuk mendukung metode serialisasi lainnya.
Serializes Data Menggunakan System.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;Serialisasi data menggunakan csvhelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;Serializes Data Menggunakan NewTonsoft Json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;atau adil
optionsBuilder.UseFileContextDatabase();
Serializes Data ke BSON Menggunakan newTonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;Menyimpan file ke file .xlsx dan memungkinkan pengeditan cepat data menggunakan excel
Menggunakan Implementasi EEPLUS untuk .NET Core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;Jika Anda ingin mengamankan file Excel dengan penggunaan kata sandi:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;Untuk menjalankan di Linux-Systems
sudo apt-get update
sudo apt-get install libgdiplus
File Manager mengontrol bagaimana file disimpan.
Manajer file default hanya membuat file normal.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;Manajer file yang dienkripsi mengenkripsi file dengan kata sandi.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; Secara default file disimpan dalam subfolder aplikasi Anda yang berjalan yang disebut appdata . Jika Anda ingin mengontrol perilaku ini, Anda juga dapat menggunakan Tentukan lokasi khusus.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; Jika tidak ada yang dikonfigurasi semua file aplikasi Anda akan disimpan dalam folder datar. Anda secara opsional dapat mendefinisikan nama untuk database Anda dan semua data yang sesuai akan disimpan dalam subfolder. Jadi, Anda dapat menggunakan FileContext dengan beberapa konfigurasi DBContext-Configurations.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; Anda dapat membuat Serializer Kustom, Manajer File, dan Manajer Toko jika Anda mau.
Jika Anda ingin membuat serializer khusus, implementasikan antarmuka ISerializer .
Jika Anda ingin mengontrol penyimpanan data implementasi data IFileManager .
Jika Anda ingin membuat manajer toko yang keduanya menerapkan IStoreManager .
Setelah menambahkan penyedia khusus, Anda harus menambahkannya sebagai ketergantungan sementara dalam injeksi ketergantungan.
Jangan ragu untuk membuat PR dengan penyedia baru Anda dan saya akan menambahkannya ke FileContextCore.
| Versi FileContext | Versi Inti 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 |
Tampaknya EF Core saat ini tidak mendukung untuk menentukan nama tabel khusus menggunakan anotasi pada model. Gunakan Metode OnModelCreating untuk menentukan nama tabel khusus.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} Ini akan menyimpan data dalam file yang disebut custom_user_table.json misalnya.
Morris Janatzek (Morrisjdev)