آموزش 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 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1