FILECONTEXTCORE هو "قاعدة بيانات"-محملة لـ Entity Framework Core وتضيف القدرة على تخزين المعلومات في الملفات. يتيح التطورات السريعة بسبب ميزة فقط نسخ الملفات وتحريرها وحذفها.
هذا الإطار قواعد على فكرة fileContext بواسطة Devmentor (https://github.com/pmizel/devmentor.context.filecontext)
! هذا التمديد غير المقصود استخدامه في أنظمة الإنتاج!
https://www.nuget.org/packages/filecontextcore/
PM > Install-Package FileContextCore
في Startup.cs الخاص بك ، استخدم هذا:
public void ConfigureServices ( IServiceCollection services )
{
.. .
services . AddDbContext < Context > ( options => options . UseFileContextDatabase ( ) ) ;
.. .
} OnConfiguring يمكنك أيضًا تجاوز طريقة OnConfiguring من DBContext لتطبيق الإعدادات:
protected override void OnConfiguring ( DbContextOptionsBuilder optionsBuilder )
{
optionsBuilder . UseFileContextDatabase ( ) ;
} للحصول على مثال بسيط تحقق من: مثال
يمكنك أيضًا اللعب مع هذا المثال على dotnetfiddle.net: العرض التوضيحي
افتراضيًا ، يستخدم الامتداد JSON -serialization و DefaultFileManager
يمكنك استخدام مسلسل مختلف لدعم طرق التسلسل الأخرى.
تسلسل البيانات باستخدام system.xml
optionsBuilder . UseFileContextDatabase < XMLSerializer , DefaultFileManager > ( ) ;تسلسل البيانات باستخدام CSVHelper (https://joshclose.github.io/csvhelper/)
optionsBuilder . UseFileContextDatabase < CSVSerializer , DefaultFileManager > ( ) ;تسلسل البيانات باستخدام Newtonsoft Json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;أو عادل
optionsBuilder.UseFileContextDatabase();
تسلسل البيانات إلى BSON باستخدام Newtonsoft json.net (http://www.newtonsoft.com/json)
optionsBuilder . UseFileContextDatabase < BSONSerializer , DefaultFileManager > ( ) ;يحفظ الملفات في ملف .xlsx ويمكّن التحرير السريع للبيانات باستخدام Excel
يستخدم تنفيذ Eeplus لـ .NET Core (https://github.com/vahidn/epplus.core)
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( ) ;إذا كنت ترغب في تأمين ملف Excel باستخدام كلمة مرور استخدمها:
optionsBuilder . UseFileContextDatabase < EXCELStoreManager > ( password : "<password>" ) ;لتشغيل على نظام Linux-Systems
sudo apt-get update
sudo apt-get install libgdiplus
يتحكم مدير الملفات في كيفية تخزين الملفات.
مدير الملفات الافتراضي ينشئ ملفات عادية فقط.
optionsBuilder . UseFileContextDatabase < JSONSerializer , DefaultFileManager > ( ) ;يقوم مدير الملفات المشفر بتشفير الملفات بكلمة مرور.
optionsBuilder . UseFileContextDatabase < JSONSerializer , EncryptedFileManager > ( password : "<password>" ) ; بشكل افتراضي ، يتم تخزين الملفات في مقلع فرعي لتطبيق التشغيل الخاص بك يسمى appdata . إذا كنت ترغب في التحكم في هذا السلوك ، يمكنك أيضًا استخدام تحديد موقع مخصص.
optionsBuilder . UseFileContextDatabase ( location : @"C:UsersmjanatzekDocumentsProjectstest" ) ; إذا لم يتم تكوين أي شيء ، فسيتم تخزين جميع ملفات التطبيق في مجلد مسطح. يمكنك اختياريا تحديد اسم قاعدة البيانات الخاصة بك وسيتم حفظ جميع البيانات المقابلة في المجلد الفرعي. لذلك يمكنك استخدام FileContext مع عمليات تكوينات DBContext متعددة.
optionsBuilder . UseFileContextDatabase ( databasename : "database" ) ; يمكنك إنشاء المسلسل المخصص ومدير الملفات ومدير المتجر إذا كنت تريد.
إذا كنت ترغب في إنشاء مسلسل مخصص قم بتنفيذ واجهة ISerializer .
إذا كنت ترغب في التحكم في تخزين البيانات تنفيذ واجهة IFileManager .
إذا كنت ترغب في إنشاء مدير متجر يقوم بتطبيق IStoreManager .
بعد إضافة موفر مخصص ، يجب عليك إضافته كاعتماد عابر في حقن التبعية.
لا تتردد في إنشاء PR مع مزودك الجديد وسأضيفه إلى FileContextCore.
| إصدار FileContext | الإصدار الأساسي 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 |
يبدو أن EF Core لا يدعم حاليًا تحديد اسم جدول مخصص باستخدام التعليقات التوضيحية على النماذج. استخدم OnModelCreating -Method لتحديد اسم الجدول المخصص.
protected override void OnModelCreating ( ModelBuilder modelBuilder )
{
modelBuilder . Entity < User > ( )
. ToTable ( "custom_user_table" ) ;
} سيؤدي ذلك إلى تخزين البيانات في ملف يسمى custom_user_table.json على سبيل المثال.
موريس جاناتزيك (موريسجديف)