لقد قمت بإنشاء أمثلة لموضوعات الوصول إلى البيانات في هذا المستودع. لدي أمثلة ومشاريع حول موضوعات مثل إطار عمل الكيان، والبيانات أولاً، والكود أولاً، وأورم، وإنشاء قاعدة البيانات.
إنها أداة تعمل كجسر بين قاعدة البيانات العلائقية والبرمجة الموجهة للكائنات (OOP). هذا الجسر عبارة عن هيكل نستخدم فيه نماذج الكائنات الخاصة بنا لإدارة معلوماتنا في قاعدة البيانات العلائقية. باختصار، إنه إطار عمل طورته شركة Microsoft يربط كائناتنا بقاعدة البيانات ويتبادل البيانات لنا.
باستخدام استعلامات LINQ (الاستعلام اللغوي المتكامل) مع إطار عمل الكيان، لدينا استعلام قوي عن الكائنات. الخدمات التي يقدمها إطار عمل الكيان هي بشكل أساسي تتبع التغيير، وحل الهوية، وترجمة الاستعلام. الغرض الرئيسي من إطار عمل الكيان هو تمكين مطور التطبيق من التركيز على جانب التطبيق دون الانشغال بعمليات البيانات. وكمثال بسيط للغاية، نحن المطورون مسؤولون بالكامل عن فتح وإغلاق الاتصال في تطبيقات ADO.NET الكلاسيكية. ومع ذلك، عند استخدام إطار عمل الكيان، فإنك لا تتدخل في مثل هذه العمليات. تقوم بإعداد استعلامك وإرساله إلى قاعدة البيانات عبر إطار عمل الكيان.
يستخدم Entity Framework ثلاث طرق مختلفة لتطوير المشروع لهذا الغرض.
Model First = تسمح هذه الطريقة بتصميم قاعدة البيانات على هذا النموذج عن طريق إضافة ملف نموذج فارغ (.edmx) في Visual Studio. يقوم ملف البرنامج النصي الموجود في خطوة الترجمة بإنشاء قاعدة البيانات.
قاعدة البيانات أولاً = في هذا الاتجاه، يتم إنشاء الفئات الضرورية لدينا بواسطة Entity Framework عن طريق ربط قاعدة البيانات التي تم إنشاؤها مسبقًا بالمشروع كنموذج.
في هذا المجلد، عرضت أمثلة قاعدة البيانات الخاصة بي أولاً. صفحات جيثب.
Code First = هذه الطريقة هي الطريقة التي ننفذها من خلال البدء في إنشاء فئاتنا في بيئة الاستوديو المرئي. قاعدة بياناتنا مشتقة من هذه الفئات. هنا، يمكن للمطور إجراء عمليات التعيين بفضل السمات أثناء إنشاء الفئات. بالمناسبة، عملية رسم الخرائط هي الحدث الذي نحدد فيه قيودنا في جداولنا. بالإضافة إلى السمات، يمكننا تنفيذ هذه العمليات بطرق مختلفة. على سبيل المثال، تُستخدم أدوات مثل Fluent Api أو Fluent Validation بشكل شائع في عمليات رسم الخرائط.
باستخدام مكتبة Entity Framework، يمكننا تصفية البيانات عن طريق إجراء استعلامات على جدول في قاعدة البيانات الخاصة بنا. يمكن إجراء جميع الاستعلامات التي يمكنك إجراؤها على T-SQL تقريبًا باستخدام Entity Framework.
لقد أظهرت هنا عمليات التحديد الأساسية. صفحات جيثب.
يمكنك أيضًا استخدام الوظائف المتكاملة لاستعلامات T-SQL وإعداد التقارير من خلال مكتبة Entity Framework.
لقد عرضت هنا وظائفنا الإجمالية الأساسية. صفحات جيثب.
في بنية Code First، تتوافق بنيات "الفئة" في لغة البرمجة مع بنيات "الجدول" في قاعدة البيانات، وتتوافق بنيات "الخاصية" مع بنيات "العمود" في قاعدة البيانات. بالإضافة إلى ذلك، وبفضل السمات، يمكن تطبيق عمليات التحقق من الصحة على هياكل قاعدة البيانات ويمكن وضع شروط أو قيود معينة على الأعمدة. والأهم من ذلك، أنها تتيح لك الشعور بالتحكم التلقائي في النموذج في مشروعك واستخدامه كما يحلو لك مع التحكم الكامل.
يمكنك رؤية المثال الخاص بي حول هذا الموضوع هنا. صفحات جيثب.
لقد قمت بإنشاء قاعدة بيانات vir التي يمكنك استخدامها هنا.
يمكنك التحقق من ذلك هنا. صفحات جيثب.
إنها بنية تجعل مشاريع الهندسة المعمارية ذات الطبقات الخاصة بنا أكثر تنظيماً، وتزيد من إمكانية قراءة التعليمات البرمجية، وتزيد من العمل الجماعي، وتجعل إدارة الأخطاء أسهل. في الواقع، مع هذا الهيكل، جعلنا كتابة المشروع معيارًا. وبما أن هذا الهيكل يتكون من ثلاث طبقات رئيسية، فيمكن أن يطلق عليه اليوم هيكل متعدد الطبقات. لكنها في الواقع ترتكز على 3 طبقات رئيسية. هذه الطبقات هي؛
- طبقة البيانات - طبقة الأعمال - طبقة العرض
لقد قمت هنا بإنشاء الكيانات الخاصة بي المتوافقة مع قاعدة بياناتي. صفحات GitHub.
هنا قمت بإنشاء طبقة البنية التحتية الخاصة بي. صفحات GitHub.
لقد قمت بإنشاء واجهة المستخدم الخاصة بي هنا. صفحات GitHub.
Dapper هي أداة micro ORM تم تطويرها بواسطة Stackoverflow والتي تدعم العديد من قواعد البيانات. نظرًا لأن أدوات orm تقوم بالكثير من الأشياء بنفسها، فإن هذا يجعلها تعمل بشكل بطيء بعض الشيء. لا يفضل خاصة في الموانئ ذات حركة المرور الكثيفة. قد يكون Dapper هو المفضل في مثل هذه الحالات. وهو "dll" واحد. إذن ما هي الواجهة لرسم الخرائط؟ كما أنه لا يحتاج إلى أي ملفات التكوين. باختصار، إنه بسيط وسريع. تم إصداره كمصدر مفتوح على Github ويستمر تطويره.
- الميزة الأكثر أهمية في Dapper هي أدائها الجيد للغاية. ويفضل في أغلب الأحيان بسبب هذه الميزة.
- يمكنك بسهولة تنفيذ استعلاماتك وربط النتيجة التي تم إرجاعها بكائن ما بسهولة.
--العيب الأكثر أهمية هو أنه بما أن الاستعلامات مكتوبة في السطر، فهي عرضة للأخطاء. وينبغي الاهتمام بهذا. والأسوأ من ذلك أن هذه الأخطاء تحدث في وقت التشغيل، وليس في وقت الإنشاء.
--في Dapper، نقوم بمعظم الأشياء. يتعين على المطور إجراء قاعدة البيانات واستعلاماتنا وأصولنا من جانب البرنامج وحالة الكائنات. وهذا يزيد بشكل كبير من تكاليف التطوير والصيانة خلال مراحل تطوير المشاريع الكبيرة.
حاولت استخدام طريقتين في هذا المستودع. لقد عملت مع إجراءاتي في Sql في أحد المستودعات وفي المستودع الآخر عن طريق كتابة استفساراتي مباشرة على البرنامج.
- أولاً قمت بإنشاء قاعدة البيانات بلغة SQL.
- بعد ذلك قمت بجعل إجراءاتي مناسبة للطرق التي سأستخدمها في برنامجي. يمكنك أن تنظر من هنا. صفحات جيثب
--في برنامجي، قمت أيضًا بإنشاء الطبقات والأصول الخاصة بي، والمستودعات الخاصة بي التي سأستخدمها مع إجراءاتي. الشيء المهم هنا هو تقديم الإجراءات الخاصة بي والمعلمات التي سأستخدمها فيها بشكل صحيح. وإلا سنحصل على الكثير من الأخطاء. يمكنك أن تنظر من هنا. صفحات جيثب
- لقد قمت بإنشاء الاتصال بقاعدة البيانات باستخدام "الاتصال". يمكنك أن تنظر من هنا. صفحات جيثب
- لقد أنشأت أحدث واجهة مستخدم وقمت بتنفيذ الإجراءات المطلوبة. يمكنك أن تنظر من هنا. صفحات جيثب
لقد كتبت هنا استفساراتي التي ستؤدي إلى تشغيل العملية التي أريدها مباشرة في Sql. من الضروري حقًا توخي الحذر الشديد أثناء كتابة الاستفسارات هنا. الخطأ يمكن أن يضيع الكثير من الوقت. أما بالنسبة للمعلمات، فيجب أن تكون القيم المطابقة للمعلمات في الاستعلام صحيحة. لكن بالنسبة لي، الاستثناءات تشرح نفسها بنفسها في Dapper. من المفيد حقًا العثور على الخطأ بسهولة.
يمكنك أن تنظر من هنا. صفحات جيثب
لقد أظهرت هنا تصرفاتي في واجهة المستخدم.
يمكنك أن تنظر من هنا. صفحات جيثب