تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السابع والستون - مع linq
#3
3- LINQ TO SQL :

فئة من فئات LINQ موجهة خصيصاً لدعم SQL Server ، في العادة هي الأكثر استخداما وسنحاول التعرف عليها سريعاً في هذا الدرس .

- البحث والاستعلام :
تعرفنا عليه سابقاً ، هذا المثال مثلاً لاعادة الاسم وتاريخ التخرج على شكل فئة جديدة للأشخاص الذين يزيد عمرهم عن 30 سنة ويقطنون في مصر :

كود :
var query = from c in Employee
where c.Age > 30
&&
c.Countery == "Egypt"
Select new { c.Name, c.GraduationDate};
- استدعاء Stored Procedures :
كل ما عليك هو فقط تعريف دالة تشابه Procedure لها نفس ال Attributes ، وهي ما يقوم بها الفيجوال ستوديو افتراضياً ، الآن كل ما عليك هو كتابة أمر بهذا الشكل ( استعلام يستقبل متغير واحد ) :

كود :
var c = db.ProceduresName("Egypt");
- Compiled Query :
إذا كان هناك جملة استعلام ستستخدمها لعدة مرات فليس من المنطقي جعل نظام قواعد البيانات يتعرف من جديد على الاستعلام كل مرة ، لذا توفر لنا نظم قواعد البيانات الحل لهذه النقطة ، أيضاً LINQ تقدم لنا ذات النظرية عبر ما يسمى باسم Compiled Query .

فكرة ال Compiled Query ببساطة تعتمد على استخدام دالة CompiledQuery.Compile لعمل Compile لجملة الاستعلام ، الشكل التالي كمثال :


كود :
var c = CompiledQuery.Compile(
( DataContext context, string counteryName, int age) =>
from c in Employee
where c.Age > age
&&
c.Countery == counteryName
select new { c.CustomerID, c.CompanyName, c.City } );
والآن يمكنك تجربة استخدامها لأكثر من مرة بتغيير البارميتر فقط ، والبحث في الاستعلام الذي تم عمل Compile له :


كود :
foreach ( var row in query(dc, "Egypt",22))
{
}
foreach ( var row in query(dc, "USA",28))
{
}
foreach ( var row in query(dc, "Saudi",38))
{
}
استخدام دوال في جملة الاستعلام :

لو فرضنا جملة الاستعلام التالية :

كود :
SELECT SUM( emp.salary ) AS TotalSalary FROM Employee emp Join Department dem ON emp.DepartmentID = dep.ID Group By dep.ID
نستطيع كتابتها بشكل LINQ بالشكل التالي :


كود :
var c =
from emp in db.Employee
join dep in db.Department
on emp.DepartmentID equals dep.ID
into TotalSalary
select TotalSalary.Sum( emp => emp.Salary );
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس السابع والستون - مع linq - بواسطة Raggi Tech - 14-10-12, 10:07 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم