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();
تعليقات
إرسال تعليق