Entity Framework - الفرق بين LINQ وSQL التقليدي

Entity Framework - الفرق بين LINQ وSQL التقليدي

عند استخدام Entity Framework Core، نلاحظ أن طريقة الاستعلام لا تتم باستخدام SQL التقليدي، بل باستخدام تقنية تُدعى LINQ وهي اختصار لـ Language Integrated Query. دعونا نوضح الفرق بين LINQ وSQL التقليدي من حيث المفهوم، الاستخدام، والتكامل مع EF Core.


🔹 ما هو SQL التقليدي؟

SQL (Structured Query Language) هي لغة قياسية للتعامل مع قواعد البيانات. تُستخدم لتنفيذ استعلامات مثل SELECT, INSERT, UPDATE, DELETE.


SELECT Name, Age
FROM Students
WHERE Age > 18
ORDER BY Name;

🔸 ما هو LINQ؟

LINQ هي تقنية داخل C# تتيح كتابة استعلامات بلغة C# نفسها، وتُترجم داخليًا إلى SQL عند استخدام EF Core. تساعد LINQ في كتابة استعلامات قوية وآمنة ومتكاملة مع البيئة الكائنية (OOP).


var result = context.Students
    .Where(s => s.Age > 18)
    .OrderBy(s => s.Name)
    .Select(s => new { s.Name, s.Age })
    .ToList();

📊 مقارنة بين LINQ وSQL

الجانب LINQ SQL التقليدي
اللغة C#‎ SQL
التكامل مع OOP كامل منفصل عن الكود الكائني
التحقق من النوع (Type Safety) نعم، يتم التحقق في وقت الكتابة لا، يُكتشف الخطأ وقت التنفيذ
التكامل مع EF Core ممتاز يتطلب Raw SQL أو Stored Procedures

📌 هل يمكن استخدام SQL داخل EF Core؟

نعم، يمكنك تنفيذ استعلامات SQL خام (Raw SQL) داخل EF Core، لكن يُفضل استخدام LINQ للحصول على جميع مميزات EF من تتبع الكيانات والتحقق من الأنواع.


var students = context.Students
    .FromSqlRaw("SELECT * FROM Students WHERE Age > 18")
    .ToList();

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework