آموزش ASP.Net > کار با LINQ در ASP.Net > نحوه استفاده از LINQ در ASP.Net
مقدمه :
شما می توانید زبان LINQ را در صفحات ASP.Net برای دریافت و وایرایش اطلاعات به کار
ببرید . LINQ ، ویژگی های زبان های شی گرا را به زبان محاوره ای پایگاه داده اضافه
کرده و مدل جدیدی را برای جستجو و کار با منابع دادهای مختلف ایجاد نموده است . همچنین
این زبان به صورت مستقیم توانایی ارتباط با زبان های VB و #C را داراست .
برای دریافت اطلاعات بیشتر به بخش های
آموزش LINQ و آموزش کنترل LinqDataSource بروید .
نکته : هنگامی که از LINQ در برنامه های تحت وب استفاده می کنید ،
احتمال دارد مجبور شوید سیاست های امنیتی دسترسی به داده را در فایل های سایت اندکی
تغییر دهید . این تغییرات را در بخش های بعدی همین راهکار توضیح داده ایم .
کنترل LinqDataSource :
کنترل LinqDataSource ، راهی ساده برای اتصال به یک پایگاه داده یا داده های موجود
در حافظه موقت ، مثل یک آرایه را فراهم می کند . شما می توانید به صورت مستقیم تمام
شرایط مورد نظر خود برای انجام امور به روز رسانی ، فیلترینگ ، مرتب سازی و ... را
در این کنترل تعیین نمایید . کنترل به صورت اتوماتیک تمام دستورات و query های لازم
را برای انجام عملیات های مورد نظرتان ایجاد می کند .
هنگامی که شما اطلاعات مورد نظر خود را از طریق LINQ دریافت کرده و به کلاس های
SQL مورد نظرتان ارسال می کنید ، کنترل LinqDataSource می تواند کلیه امور
به روز رسانی ، درج ، حذف و ... اطلاعات را بدون نیاز به نوشتن کد خاصی انجام دهد .
برای نمایش اطلاعات استخراج شده بر روی صفحه ، بایستی کنترل LinqDataSource را به یک
کنترل داده وب مثل GridView یا
DetailsView متصل نمایید .
کد زیر ، نمونه کد اتصال یک کنترل LinqDataSource به پایگاه داده ای به نام AdventureWorks
را نمایش می دهد . این کنترل اطلاعات رکوردهایی که مقدار فیلد EmailPromotion آنها
برابر با 1 است را از جدول Contact بر می گرداند .
|
کد
|
<asp:LinqDataSource
ContextTypeName="AdventureWorksDataContext"
TableName="Contacts"
Where="EmailPromotion=1"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
|
جستجو داده - LINQ Queries :
شما می توانید Query های LINQ ( عبارات لازم برای جستجو داده ) را بدون استفاده از
یک کنترل سرور داده بر روی صفحه تعیین نمایید .
این Query ها ، توانایی انجام عملیات های لازم برای جستجو و استخراج داده را داشته
و سپس می توانید آن را به وسیله یک کنترل داده وب نمایش دهید .
نکته مهم در استفاده از این Query ها ، این است که شما دیگر نیازی به استفاده از یک
کنترل سرور داده مثل SqlDataSource را
بر روی صفحه نداشته ، بلکه خود LINQ عملیات را برای شما انجام می دهد .
مثال : کد زیر به دو زبان VB و #C نوشته شده است و اطلاعات رکوردهایی
از از جدول Contact پایگاه داده AdventureWorks که مقدار فیلد em آنها ، برابر EmailPromotion
است را استخراج کرده و توسط یک کنترل GridView
نمایش می دهد :
|
VB کد
|
Protected Sub Page_Load(ByVal sender As Object , ByVal e As System.EventArgs) Handles
Me.Load
If Not IsPostBack Then
Dim
dataContext As AdventureWorksDataContext = New AdventureWorksDataContext( )
Dim query = From
contact In dataContext.Contacts
Where contact.EmailPromotion
= 1
Select contact
GridView1.DataSource
= query
GridView1.DataBind()
End If
End Sub
|
|
C# کد
|
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AdventureWorksDataContext dataContext = new AdventureWorksDataContext(
); var query = from contact in dataContext.Contacts
where contact.EmailPromotion==1
select contact;
GridView1.DataSource = query;
GridView1.DataBind( );
}
}
|
LINQ و امنیت دسترسی به داده ها :
در این بخش می خواهیم اطلاعات لازم ، برای نوشتن کدهای LINQ در برنامه های با امنیت
متوسط و امنیت بالا را آموزش دهیم :
استفاده از LINQ در یک برنامه با امنیت متوسط :
برای استفاده از LINQ در یک برنامه با امنیت متوسط ، بایستی دو المنت را در فایل امنیت
داده ( Policy File ) جهت تعیین امنیت Medium قرار دهید . به صورت پیش فرض ، فایل web_mediumtrust.config
، فایل لازم برای برنامه با امنیت متوسط بوده و المنت های زیر در آن قرار دارد
.
در المنت SecurityClasses ، زبان LINQ به یک المنت SecurityClass با خواص زیر نیاز دارد
:
|
کد
|
<SecurityClass
Name="ReflectionPermission"
Description="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=bLINQLINQa5c561934e089"
/>
|
همچنین یک المنت PermissionSet که دارای خاصیت Name با مقدار تنظیم شده بر روی
" ASP.Net " است را لازم دارد :
|
کد
|
<IPermission
class="ReflectionPermission"
version="1"
Flags="RestrictedMemberAccess"
/>
|
استفاده از LINQ در یک برنامه با امنیت بالا :
برای استفاده از LINQ در یک برنامه با امنیت و اطمینان بالا ، شما بایستی یک المنت
را در ( Policy File ) فایل امنیت داده آن تعریف نمایید .
به صورت پیش فرض ، فایل web_hightrust.config به عنوان فایل Policy در برنامه ها با
امنیت بالا ، تعیین شده و دارای المنت زیر است .
درون المنت PermissionSet ، بایستی خاصیت Name را با مقدار " ASP.Net " تنظیم
نموده و برای المنت IPermission خواص موجود در کد زیر را تعیین کنید :
|
کد
|
<IPermission
class="ReflectionPermission"
version="1"
Flags="RestrictedMemberAccess"
/>
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :