LINQ (لینک) مختصر کلمه Language Integrated Query بوده و یک زبان برای تقاضا
از هر گونه مجموعه داده (بانک اطلاعاتی، آرایهها، Xml و...) میباشد. این زبان
بسیار شبیه زبان SQL بوده و با زبانهای C# و Vb.NET قابل پیاده سازی است.
هدف اصلی خلق LINQ ارائه یک زبان یکتا جهت تقاضا، برنامه ریزی و فیلتر کردن اطلاعات ذخیره شده در اشیاء مختلف اعم از پایگاه داده، اشیا، آرایهها و از همه مهتر XML است، این زبان قابلیت Debug شدن به صورت Runtime را دارست و بسیار قابل انعطاف است.
این سیستم اجازه گرفتن گزارشهای مختلف از بانک اطلااتی SQL SERVER را به LINQ به خوبی SQL Server Compact میدهد.زمانی که اطلاعات بانک SQL SERVER در سرورهای Remote(راه دور) ذخیره شده باشندو به خاطر این که موتور جستجو برای این کار استفاده شدهاست، LINQ TO SQL از موتور داخلی LINQ استفاده نمیکند در عوض گزارش ساخته شده توسظ LINQ را به SQL تبدیل کرده و آن را موتور SQL SERVER ارجاع میدهد.اگر چه از زمانی که بانک اطلاعاتی SQL SERVER اطلاعات خود را به صورت (Relational Data)یا اطلاعات مرتبط ذخیره سازی میکند و LINQ از اطلاعات کپسوله شده در Objectها، این دو سیستم بایستی به یکدیکر متصل شوند.به همین دلیل LINQ TO SQL یک چهارچوب اتصال (Mapping Framework) را تعریف میکند. این چهارچوب به وسیله کلاسهایی انجام میشود که با جدولی همانند خود در بانک اطلاعاتی ارتباط دارند؛ این کلاسها شامل کلیه و یا تعدادی از ستونهای جدول مابازای خود در بانک اطلاعاتی را به صورت Data Member دارا میباشند.
این تطابق از طریق خواص مدلهای ارتباطی (relational model attributes) مانند primary keys با استفاده از Attributeهای تعریف شده در LINQ TO SQL ایجاد میگردد.
توجه داشته باشید قبل از این که ما بتوانیم از LINQ TO SQL استفاده کنیم بایستی کلاسهای مابازای جداول بانک اطلاعاتی را تعریف کرده باشیم. در Visual Studio ۲۰۰۸ محیطی برای سهولت در طراحی و پیاده سازی این کلاسها تحت عنوان mapping designer موجود میباشد که میتوان به راحتی تمامی جداول بانک اطلاعاتی مورد نظر را پیاه سازی نمود.البته این سیستم در صورت اتصال به بانک مورد نظر به صورت خود کار عملیاتهای ساخت کلاسها و فیلدها با Attributeهای آنها و ایجاد ارتباطات میان کلاسها را انجام میدهد که به صورت دستی قابل تغییر میباشد. این نگاشت یا پیاده سازی جداول به صورت کلاس را DataContext بر عهده دارد. DataContext رشته اتصال به بانک و یا هرگونه اتصال که از IDbConnection ارث بری کرده باشد را گرفته و از آن جهت تولید گزارشات و تولید کلاس از نوع جدول مرتبط (Table<T>) با آن استفاده مینماید.
هدف اصلی خلق LINQ ارائه یک زبان یکتا جهت تقاضا، برنامه ریزی و فیلتر کردن اطلاعات ذخیره شده در اشیاء مختلف اعم از پایگاه داده، اشیا، آرایهها و از همه مهتر XML است، این زبان قابلیت Debug شدن به صورت Runtime را دارست و بسیار قابل انعطاف است.
این سیستم اجازه گرفتن گزارشهای مختلف از بانک اطلااتی SQL SERVER را به LINQ به خوبی SQL Server Compact میدهد.زمانی که اطلاعات بانک SQL SERVER در سرورهای Remote(راه دور) ذخیره شده باشندو به خاطر این که موتور جستجو برای این کار استفاده شدهاست، LINQ TO SQL از موتور داخلی LINQ استفاده نمیکند در عوض گزارش ساخته شده توسظ LINQ را به SQL تبدیل کرده و آن را موتور SQL SERVER ارجاع میدهد.اگر چه از زمانی که بانک اطلاعاتی SQL SERVER اطلاعات خود را به صورت (Relational Data)یا اطلاعات مرتبط ذخیره سازی میکند و LINQ از اطلاعات کپسوله شده در Objectها، این دو سیستم بایستی به یکدیکر متصل شوند.به همین دلیل LINQ TO SQL یک چهارچوب اتصال (Mapping Framework) را تعریف میکند. این چهارچوب به وسیله کلاسهایی انجام میشود که با جدولی همانند خود در بانک اطلاعاتی ارتباط دارند؛ این کلاسها شامل کلیه و یا تعدادی از ستونهای جدول مابازای خود در بانک اطلاعاتی را به صورت Data Member دارا میباشند.
این تطابق از طریق خواص مدلهای ارتباطی (relational model attributes) مانند primary keys با استفاده از Attributeهای تعریف شده در LINQ TO SQL ایجاد میگردد.
توجه داشته باشید قبل از این که ما بتوانیم از LINQ TO SQL استفاده کنیم بایستی کلاسهای مابازای جداول بانک اطلاعاتی را تعریف کرده باشیم. در Visual Studio ۲۰۰۸ محیطی برای سهولت در طراحی و پیاده سازی این کلاسها تحت عنوان mapping designer موجود میباشد که میتوان به راحتی تمامی جداول بانک اطلاعاتی مورد نظر را پیاه سازی نمود.البته این سیستم در صورت اتصال به بانک مورد نظر به صورت خود کار عملیاتهای ساخت کلاسها و فیلدها با Attributeهای آنها و ایجاد ارتباطات میان کلاسها را انجام میدهد که به صورت دستی قابل تغییر میباشد. این نگاشت یا پیاده سازی جداول به صورت کلاس را DataContext بر عهده دارد. DataContext رشته اتصال به بانک و یا هرگونه اتصال که از IDbConnection ارث بری کرده باشد را گرفته و از آن جهت تولید گزارشات و تولید کلاس از نوع جدول مرتبط (Table<T>) با آن استفاده مینماید.
ساعت : 10:43 am | نویسنده : admin
|
مطلب بعدی