توجه داشته باشید که ما برای تولید این صفحه نیاز به نوشتن هیچگونه کدی برای دسترسی به پایگاه داده نداریم.
LINQ این کار را از دوش ما برداشته و کدهای SQL را تولید میکند.
شما میتوانید ایجاد شده توسط LINQ برای پرس و جو را در پنجره ی output در ویژوال استادیو ملاحظه کنید.(برای نمایش این پنجره از مسیر View>Output و یا کلید های ctrl+w+o اقدام کنید)
مثال 24 : نوشتن پرس و جوی LINQ به SQL در پنجره ی Output
کد های VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim dc As New MoviesDataContext()
Dim query = From m In dc.Movies _
Select m
System.Diagnostics.Debug.WriteLine(query)
Me.GridView1.DataSource = query
Me.GridView1.DataBind()
End Sub
کد های C#
protected void Page_Load(object sender, EventArgs e)
{
MoviesDataContext dc = new MoviesDataContext();
var query = from m in dc.Movies
select m;
System.Diagnostics.Debug.WriteLine(query);
this.GridView1.DataSource = query;
this.GridView1.DataBind();
}
حالا شما میتوانید متن زیر را در قسمت debug پنجره ی Output ملاحظه کنید.
SELECT [t0].[Title], [t0].[Director], [t0].[Genre], [t0].[RunTime], [t0].[ReleaseDate]
FROM [dbo].[Movie] AS [t0]
همانطور که می بینید ، کدهای SQL تولید شده برابر با سینتکس استاندارد SQL هستند و LINQ کدهای بهینه را تولید میکند ، حتی برای پرس و جو های پیچیده تر مانند گروه بندی داده ها نیز کد های تولید شده بهینه هستند.
مثال 9-26 : گروه بندی داده ها توسط LINQ به SQL
کد های VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim dc As New MoviesDataContext()
Dim query = From m In dc.Movies _
Group By m.Genre Into g = Group, Count()
System.Diagnostics.Debug.WriteLine(query)
Me.GridView1.DataSource = query
Me.GridView1.DataBind()
End Sub
کد های C#
protected void Page_Load(object sender, EventArgs e)
{
MoviesDataContext dc = new MoviesDataContext();
var query = from m in dc.Movies
group m by m.Genre into g
select new { Genre = g.Key, Count = g.Count() };
System.Diagnostics.Debug.WriteLine(query);
this.GridView1.DataSource = query;
this.GridView1.DataBind();
}
کدهای تولید شده توسط LINQ
SELECT COUNT(*) AS [Count], [t0].[Genre]
FROM [dbo].[Movie] AS [t0]
GROUP BY [t0].[Genre]
همانطور که ملاحظه میکنید کدهای تولید شده برای SQL Server بهینه هستند.
------------------------------------------------------------------------------------
پاورقی : با پوزش به خاطر تاخیر در ادامه روند آموزش.
لطفا برای درک بهتر مطالب نوشته های پیشین را دنبال کنید.





پاسخ با نقل قول
