تمرين - استخدام موفر قاعدة بيانات SQLite مع EF Core
حتى هذه النقطة، كنت تحفظ بياناتك في قاعدة بيانات في الذاكرة. قاعدة البيانات هذه سهلة الإعداد والاستخدام أثناء تطوير التطبيق الخاص بك، ولكن البيانات ليست ثابتة. ونتيجة لذلك، سيتم فقدان البيانات عند إعادة تشغيل التطبيق. قبل نشر التطبيق الخاص بك، تحتاج إلى الاحتفاظ بالبيانات في قاعدة بيانات.
في هذا التمرين، ستقوم بترقية التطبيق الخاص بك لاستخدام قاعدة بيانات ارتباطية لتخزين بياناتك. ستستخدم SQLite لتخزين بياناتك.
إعداد قاعدة بيانات SQLite
أكمل الأقسام التالية لإعداد قاعدة بيانات SQLite.
تثبيت الأدوات والحزم التالية
في المحطة الطرفية، قم بتثبيت الحزم التالية:
موفر قاعدة بيانات SQLite EF Core: يمكنه الوصول إلى العديد من قواعد البيانات المختلفة من خلال مكتبات المكونات الإضافية المسماة موفري قاعدة البيانات. الحزمة التالية هي موفر قاعدة بيانات SQLite ل Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0أدوات EF Core: تؤدي أدوات EF Core مهام تطوير وقت التصميم. على سبيل المثال، يقومون بإنشاء عمليات ترحيل وتطبيق عمليات الترحيل وإنشاء تعليمة برمجية لنموذج يستند إلى قاعدة بيانات موجودة.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: يحتوي على كل منطق وقت التصميم ل EF Core لإنشاء قاعدة البيانات الخاصة بك.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
تمكين إنشاء قاعدة البيانات
لتمكين إنشاء قاعدة البيانات، تحتاج إلى تعيين سلسلة اتصال قاعدة البيانات. ثم ستقوم بترحيل نموذج البيانات إلى قاعدة بيانات SQLite.
في Program.cs، ضمن
var builder = WebApplication.CreateBuilder(args);، أضف سلسلة اتصال.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";تتحقق هذه التعليمة البرمجية من موفر التكوين لسلسلة اتصال تسمى Pizzas. إذا لم يعثر على واحد، فسيستخدم
Data Source=Pizzas.dbكسلسلة اتصال. سيقوم SQLite بتعيين هذه السلسلة إلى ملف.في جزء CRUD من هذا البرنامج التعليمي، استخدمت قاعدة بيانات في الذاكرة. الآن ستقوم باستبدال قاعدة البيانات في الذاكرة بقاعدة بيانات ثابتة.
استبدل تطبيق قاعدة البيانات الحالية في الذاكرة
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));في خدمات البناء الخاصة بك مع SQLite هنا:builder.Services.AddSqlite<PizzaDb>(connectionString);باستخدام أداة ترحيل EF Core، يمكنك الآن إنشاء الترحيل الأول،
InitialCreate. احفظ جميع التغييرات، ثم قم بتشغيل الأمر التالي:dotnet ef migrations add InitialCreateينشئ EF Core مجلد Migrations في دليل المشروع الذي يحتوي على ملفين مع التعليمات البرمجية التي تمثل عمليات ترحيل قاعدة البيانات.
الآن بعد أن أكملت الترحيل، يمكنك استخدامه لإنشاء قاعدة البيانات والمخطط.
في نافذة طرفية، قم بتشغيل الأمر
database updateالتالي لتطبيق عمليات الترحيل على قاعدة بيانات:dotnet ef database updateيجب أن تشاهد ملف Pizzas.db تم إنشاؤه حديثا في دليل المشروع.
تشغيل التطبيق واختباره
الآن بعد أن أصبح لديك قاعدة بيانات دعم، سيتم استمرار التغييرات الخاصة بك.
اختبر تطبيقك كما كان من قبل باستخدام dotnet run وواجهة مستخدم Swagger. أوقف التطبيق باستخدام الأمر Ctrl+C. ثم قم بتشغيله مرة أخرى وتحقق من أن التغييرات لا تزال مستمرة في Pizzas.db.
مبروك! لقد قمت بربط قاعدة بيانات بالحد الأدنى من واجهة برمجة التطبيقات الخاصة بك!