آموزش LINQ

دسته بندی: دسترسی به داده

آموزش لین کیو

آنچه در این صفحه می خوانید:

معرفی LINQ

Language Integrated Query به اختصار LINQ، یک مدل و روش برنامه نویسی مایکروسافت است که اساسا قابلیت های پرس و جو رسمی را به زبان های برنامه نویسی مبتنی بر دات نت اضافه می کند. LINQ یک سینتکس جمع و جور، مفسر و قابل فهم را برای تغییر داده ها ارائه می دهد. LINQ از یک سینتکس مشابه اس کیو ال استفاده می کند تا عبارات پرس و جو را فراتر از قابلیت های SQL جاسازی شده در زبان های برنامه نویسی ایجاد کند. به همین دلیل است که SQL جاسازی شده از سینتکس های ساده برای افزودن کوئری های SQL به زبان برنامه نویسی دیگر استفاده می کند، که در آن هیچ تلاشی برای ادغام چنین کوئری هایی به سینتکس نیتیو و مکانیزم تایپ وجود ندارد. بنابراین، نمی توانید ساختارهای زبان مادری مانند قابلیت در دستورات SQL جاسازی شده را فراخوانی کنید، تا وقتی که می توانید از LINQ استفاده کنید، چرا که برای استفاده از سینتکس نیتیو، ساختارها و مکانیزم های تایپ استفاده می شود. علاوه بر این، LINQ ممکن است برای دسترسی به انواع داده ها استفاده شود، در حالی که SQL جاسازی شده محدود به آدرس دادن به پایگاه های داده ای است که می تواند پرس و جوهای SQL را انجام دهد.

LINQ، یک مؤلفه دات نت فریمورک است که قابلیت جستجوی داده های بومی را به زبان های NET. اضافه می کند، که در ابتدا به عنوان بخش عمده ای از NET Framework 3.5. در سال 2007 منتشر شد. LINQ با افزودن عبارات پرس و جو، که شبیه به عبارت SQL هستند، زبان را گسترش می دهد و می تواند برای استخراج و پردازش راحت داده ها از آرایه ها، کلاس های بیشمار، اسناد اکس ام ال، پایگاه داده های رابطه و منابع داده شخص ثالث استفاده شود. سایر کاربردها، که از عبارات نمایش داده شده به عنوان یک فریمورک کلی برای ترکیب محاسبات دلخواه استفاده می کنند، شامل ساخت حوادث یا پارسرهای monadic است. همچنین مجموعه ای از اسامی متد (به نام عملگرهای جستجوی استاندارد یا اپراتورهای دنباله استاندارد) را تعریف می کند، به همراه قواعد ترجمه ای که توسط کامپایلر برای ترجمه عبارات نمایش داده شده به سبک روان به عبارات با استفاده از این نام های روش، عبارات لامبدا و توابع ناشناس استفاده می شود. بسیاری از مفاهیمی که LINQ معرفی کرد در ابتدا در پروژه تحقیقاتی Cω مایکروسافت مورد آزمایش قرار گرفتند.

ویژگی های LINQ

اگرچه مایکروسافت با بخشی از LINQ که کد T-SQL را تولید می کند، در برابر اس کیوال سرور کار نمی کند، اما این شرکت هنوز هم از LINQ برای پردازش نتایج پرس و جو پشتیبانی می کند. LINQ تمایل دارد که در زمینه یک گروه فناوری دوم - ارائه دهنده - مانند LINQ to XML، LINQ To SQL ارجاع شود. هر یک از این دسته ها بر اساس نحو اصلی LINQ ساخته شده اند و تفاوت بین دسته ها می تواند ظریف باشد. یک توسعه دهنده در ابتدا ممکن است استفاده از LINQ To SQL را پیشنهاد دهد. برخی از توسعه دهندگان همچنان به استفاده از LINQ To SQL به عنوان ابزاری آشنا در موقعیت های خاص ادامه می دهند، اگرچه تمرکز بزرگتر LINQ روی داده هایی است که از SQL Server برگشته اند. مناطقی که در آن LINQ نقش محکمی را ایفا می کند در پردازش داده ها به صورت اشخاص و نتایج حاصل از پردازش رویه های ذخیره شده در برابر یک پایگاه داده است.

LINQ شش روش استاندارد برای دسترسی به داده ها ارائه می دهد. البته، به معنای واقعی کلمه ده ها ارائه دهنده شخص ثالث برای LINQ وجود دارد که یکی از نقاط قوت LINQ به عنوان یک فناوری است. برای دسترسی به SQL، مایکروسافت LINQ را به SQL ارائه می دهد. مایکروسافت همچنین از فناوری های دیگری مانند ADO.NET مستقیم، Entity Framework و سرویس های داده WCF برای دسترسی به پایگاه داده پشتیبانی می کند. اگرچه بیشتر این فناوری ها از قابلیت های منحصر به فردی برخوردار هستند، اما تعدادی از آنها نیز در برخی از سطح با هم همپوشانی دارند. به عنوان مثال، قابلیت های LINQ To SQL در واقع زیر مجموعه ای از قابلیت های Entity Framework 4.0 هستند. با این حال، فریمورک Entity از سطح زمین تا به منظور ایجاد یک لایه انتزاعی تر از آنچه LINQ To SQL ارائه می دهد، طراحی شده است. انتزاع فریمورک Entity برخی از پیچیدگی ها را می بخشد، اما با استفاده از سازگاری بیشتر.

هر یک از این فناوری های دسترسی به داده دارای ویژگی های مختلفی هستند که باعث می شود از آن استفاده مناسب صورت گیرد. برخی از این خصوصیات فنی هستند، برای مثال، LINQ To SQL فقط از پایگاه داده های SQL Server پشتیبانی می کند. اگر نیاز به جستجوی پایگاه داده اوراکل دارید، LINQ To SQL گزینه ای نیست. برخی دیگر به خصوصیات برنامه بستگی دارند. برای مثال، اگر می خواهید جداول اصلی را ایجاد کنید (یعنی داده های رابط را به یک مدل شی تبدیل کنید)، Entity Framework بسیار قدرتمندتر از سایر گزینه ها، به خصوص LINQ To SQL است.

معماری LINQ

معماری لین کیو

کاربران می توانند با پرس و جو با استفاده از LINQ از اسناد XML، پایگاه داده های رابطه ای و مجموعه های حافظه پرس و جو کنند. زبان هایی که از قابلیت LINQ پشتیبانی می کنند VB، سی شارپ و غیره هستند. منابع داده با استفاده از منابع داده LINQ که شامل چاشنی های های LINQ مانند LINQ to Objects، LINQ to ADO.NET و LINQ to XML هستند به زبان متصل می شوند.

چاشنی های اصلی LINQ عبارتند از:

  • LINQ to objects: به جستجوی اشیاء در حافظه مانند آرایه ها، لیست ها، لیست عمومی و هر نوع مجموعه اجازه می دهد.
  • LINQ to XML: با تبدیل سند به اشیاء XElement و پرس و جو با استفاده از موتور اجرای محلی، امکان جستجوی سند XML را می دهد.

LINQ به ADO.NET، این شامل:

  • LINQ to SQL: این کار به طور ویژه برای کار با بانک اطلاعات سرور SQL استفاده می شود.
  • LINQ to dataset: به هر پایگاه داده ای که می تواند با ADO.NET پرس و جو کند، پرس و جو را انجام می دهد.
  • LINQ to entities: شبیه به LINQ To SQL است. این امکان را به توسعه دهندگان می دهد تا از مدل داده مفهومی مفهوم سوال کنند
  • Parallel LINQ: این یک پسوند LINQ به اشیاء است که دارای یک کتابخانه برنامه نویسی موازی است. با استفاده از این می توان پرس و جو را برای اجرای همزمان در پردازنده های مختلف تقسیم کرد.

LINQ در سی شارپ

در بخش زیر سازه های جدید زبان معرفی شده در سی شارپ 3.0 معرفی شده است. اگرچه این ویژگی های جدید تا حدی با نمایش داده شدگان LINQ استفاده می شوند، اما محدود به LINQ نیستند و در هر زمینه ای که در آن ها از نظر شما مفید باشند می توان از آنها استفاده کرد.

عبارات پرس و جو از یک سینتکس اعلانی مشابه SQL یا XQuery برای جستجوی مجموعه های IEnumerable استفاده می کنند. در زمان کامپایل، سینتکس پرس و جو به فراخوانی های متد به اجرای ارائه دهنده LINQ از روش های فرمت استاندارد عملگر پرس و جو تبدیل می شود. برنامه های کاربردی با مشخص کردن فضای نام مناسب با یک دستورالعمل، اپراتورهای استاندارد نمایش داده شده را کنترل می کنند. عبارت query زیر مجموعه ای از رشته ها را تشکیل می دهد، آنها را مطابق اولین شخصیت موجود در رشته گروه بندی می کند و گروه ها را سفارش می دهد.

LINQ To SQL چیست؟

نقطه شروع منطقی برای ورود به پیچ و مهره های LINQ و SQL سرور هسته اصلی LINQ To SQL است. بر خلاف فناوری های پایگاه داده قدیمی، اگرچه مایکروسافت در حال پیشرفت های LINQ To SQL نبوده است، این شرکت کاملاً آن را رها نکرده است. پیشرفت ها بیشتر به جای بهبود ابزار یا اضافه کردن ابزار، بر پرداختن به موضوعات تمرکز دارد. به نوعی پشتیبانی از نوع جدید داده را شامل می شود. همانطور که گارد در وبلاگ خود یادداشت می کند، سیاست رسمی مایکروسافت این است که این شرکت هسته LINQ را بهبود ببخشد و ممکن است برخی از درخواست های مشتری را پیاده سازی کند، اما Entity Framework تمرکز اصلی این شرکت است.

روشن شدن هسته واقعی LINQ به فناوری های SQL از اهمیت بسیاری برخوردار است. LINQ To SQL اساساً دو مدل دارد. یکی از این مدل ها پشتیبانی از ایجاد پویا و ارسال پرس و جوهای T-SQL به SQL Server است. مدل دوم اجرای T-SQL موجود مانند رویه های ذخیره شده است که از آن مجموعه داده ای را برمی گرداند. تولید و اجرای دستورات T-SQL قلب آنچه منحصر به فرد است و ممکن است بهتر باشد به عنوان LINQ To SQL Server توصیف می شود. منطق استفاده شده مخصوص SQL Server برخلاف سایر سیستم های مدیریت پایگاه داده (DBMS) است و بخشی از دلیل LINQ To SQL (برخلاف Entity Framework) مخصوص SQL Server است. با این وجود، هسته اصلی این منطق با تولید SQL پویا پیوند خورده است و یکی از نقاط قوت اولیه LINQ در نظر گرفته می شد.

LINQ به عنصر منحصر به فرد SQL استفاده از متن داده نیست، بلکه کاری است که LINQ به عنوان بخشی از یک پرس و جو پویا انجام می دهد. به عنوان مثال، وقتی از یک جدول داده SQL Server با یک پرس و جو LINQ پرس و جو می کنید، LINQ در واقع T-SQL تولید می کند و آن پرس و جو را به پایگاه داده ارسال می کند. با این وجود، اگر به جای آن از LINQ در برابر همان زمینه برای اجرای یک روش ذخیره شده استفاده می کنید، هیچ T-SQL برای تولید وجود ندارد. در عوض، پرس و جو شما بازگشت از روی روش ذخیره شده را انجام می دهد - مجموعه داده ها. بنابراین، اگرچه بیشتر افراد استفاده از رویه های ذخیره شده را با LINQ To SQL مرتبط می کنند و ما در مورد آن صحبت می کنیم و آن را در آن زمینه پیاده سازی می کنیم، نتایج یک پرس و جو با استفاده از یک روش ذخیره شده می تواند به آسانی از یک زمینه Entity Framework یا حتی مستقیم ADO.NET از آن اجرا شود. این کد در واقع با استفاده از LINQ به مجموعه داده ها برخلاف LINQ با SQL است.

از آنجا که شیء DataContext (به عنوان مثال، System.Data.Linq.DataContext) به شما امکان می دهد یک روش ذخیره شده را ارجاع دهید، تصور اولیه و عملکردی این است که LINQ از روش های ذخیره شده پشتیبانی می کند. با این حال، فقط استفاده از LINQ برای اجرای یک روش ذخیره شده بیش از حد است. برخی از توسعه دهندگان برنامه ممکن است فقط دسترسی به روش های داده به پایگاه داده های خود را ذخیره کنند، در این صورت احتمالاً LINQ To SQL بهترین فناوری دسترسی به داده ها نیست. احتمالاً شما با استفاده از فریمورک Entity برای سایر کارها، از Entity Framework در یک برنامه NET Framework 4.0. استفاده می کنید.

سناریوی دیگری که ممکن است با آن روبرو شوید این است که شما از NET Framework 3.5 یا 3.0 استفاده می کنید اما هنوز در این مرحله نیستید NET Framework 4.0. در این حالت، فریم ورک Entity کمتر از حد مطلوب است زیرا اگرچه نسخه های قبلی از Entity Framework پشتیبانی می کنند، تا زمانی که NET Framework 4.0. یک گزینه مناسب نیست. ممکن است در چنین مواردی با LINQ همکاری کنید، یا ترجیح می دهید در عوض با ADO.NET و مجموعه های داده کار کنید و LINQ را در ردیف میانی اعمال کنید.

LINQ To XML چیست؟

LINQ to XML یک رابط برنامه نویسی XML در حافظه را ایجاد می کند که از فریمورک Query-LETQ یکپارچه با زبان NET استفاده می کند. LINQ to XML از قابلیت های دات نت استفاده می کند و با یک رابط برنامه نویسی XML شی مجدداً طراحی شده قابل مقایسه است.

XML به عنوان روشی برای قالب بندی داده ها در بسیاری از زمینه ها بطور گسترده اتخاذ شده است. به عنوان مثال، می توانید XML را در وب، در فایل های پیکربندی، در فایل های Microsoft Office Word و در پایگاه های داده پیدا کنید. LINQ to XML یک رویکرد به روز و دوباره طراحی شده برای برنامه نویسی با XML است. این ویژگی قابلیت اصلاح سند در حافظه از (DOM) را فراهم می کند و از عبارات نمایش LINQ پشتیبانی می کند. اگرچه این عبارات نمایش داده شده از نظر نحوی متفاوت از XPath هستند، اما عملکردهای مشابهی را ارائه می دهند.

آیا این نوشته را دوست داشتید؟
pluralsight-beginning-c-collections

شروع کار با C# Collections


در این دوره با متداول‌ترین کالکشن‌ها برای کوئری داده، نحوه استفاده از آرایه، لیست و دیکشنری برای گروه بندی داده‌، قرار دادن کالکشن‌ها در داخل کالکشن‌ه...

1398/09/21 1696 بازدید
linkedin-learning-asp-net-linkedin-learning

یادگیری ASP.NET


در این دوره با چارچوب ASP.NET، ابزارهای این چارچوب برای مدیریت داده‌ها، ایجاد سرویس‌های RESTful و ایجاد اتصالات بلادرنگ وب، ساخت محتوای پویا وب با ASP...

1398/07/26 2388 بازدید زیرنویس دارد
wintellectnow-linq-language-integrated-query

آموزش LINQ - زبان یکپارچه پرس و جو


زبان یکپارچه پرس و جو، LINQ، داده های پرس و جو را یک شهروند درجه اول زبان برنامه نویسی #C و همچنین دیگر زبان های فعال با LINQ (مانند VB.NET) می سازد. ...

1397/01/29 1160 بازدید
wintellectnow-linq-to-entities

دوره LINQ to Entities


LINQ to Entities قدرت کوئری یکپارچه شده زبان را با توانایی Entity Framework برای ارائه مدل مفهومی از پایگاه داده های رابطه ای را ترکیب می کند. در این ...

1397/01/03 1185 بازدید
فیلم-آموزش-linq-to-sql

فیلم آموزش LINQ to SQL


عبارت LINQ در واقع مخفف Language Integrated Query به معنای زبان پرس و جوی یکپارچه است.به کمک LINQ شما می توانید با یک زبان پرس و جوی پیشرفته که یادگیر...

1396/09/11 6369 بازدید
سورس-مدیریت-دانشگاه-به-زبان-سی-شارپ

سورس مدیریت دانشگاه به زبان سی شارپ


این پروژه تجاری به زبان سی شارپ و بانک اطلاعاتی SQL Server طراحی شده است. برای ارتباط با بانک اطلاعاتی از تکنولوژی Linq استفاده شده است. امکانات: ...

1395/10/10 7358 بازدید
pluralsight-linq-fundamentals-with-c-sharp-6-0

مبانی LINQ در سی شارپ 6


در این آموزش تصویری با مبانی LINQ در سی شارپ 6 آشنا می شوید. این دوره آموزشی محصول موسسه Pluralsight است. سرفصل های این دوره آموزشی: مقدمه LINQ...

1395/07/26 4269 بازدید
pluralsight-play-by-play-csharp-q-and-a-with-scott-allen-and-jon-skeet

پرسش و پاسخ سی شارپ توسط Scott Allen و Jon Skeet


در این آموزش تصویری آقایان Scott Allen و Jon Skeet تعداد سوال سی شارپ از سایت Stackoverflow انتخاب کرده و به صورت عملی آنها را حل می کنند. این دوره آ...

1395/07/24 2019 بازدید
pluralsight-more-effective-linq

آشنایی با نکته ها و ترفندهای مفید LINQ


در این دوره ی آموزشی نکات و ترفندهای مفید LINQ را یاد خواهید گرفت. همچنین با مشکلات رایج LINQ آشنا شده و راهکارهای رفع آن ها را خواهید آموخت. این دور...

1395/04/28 2244 بازدید
learnnowonline-microsoft-linq-using-visual-csharp-2010

آموزش LINQ در Visual C# 2010


  در این آموزش تصویری با زبان LINQ در Visual C# 2010 آشنا می شوید. این دوره آموزشی محصول موسسه LearnNowOnline است. سرفصل های دوره: LINQ س...

1395/04/18 2079 بازدید
learnnowonline-microsoft-linq-using-visual-basic-2010

آموزش LINQ در Visual Basic 2010


در این آموزش تصویری با زبان LINQ در Visual Basic 2010 آشنا می شوید. این دوره آموزشی محصول موسسه LearnNowOnline است. سرفصل های دوره: دسترسی به داد...

1395/04/18 1864 بازدید
lynda-linq-with-csharp-essential-training

آموزش LINQ با سی شارپ


LINQ (لینک) مختصر کلمه Language INtegrated Query بوده و یک زبان برای تقاضا از هر گونه مجموعه داده (بانک اطلاعاتی ، آرایه ها ، Xml و...) می باشد . این ...

1395/02/06 3042 بازدید
سورس-برنامه-چت-با-asp-net-و-ajax

سورس برنامه چت با ASP.NET و AJAX


اگر در اینترنت به دنبال یک سورس چت با ASP.NET بگردید چند تا برنامه گیرتون میاد اما یا برنامه نویس از UpdatePanel استفاده کرده و سرعت و کارایی برنامه ر...

1395/01/15 8224 بازدید
معماری-linq

معماری LINQ


Linq یک زبان پرس و جوی پیشرفته می باشد.یادگیری Linq بسیار ساده است و قبلا آموزشهای زیادی در این رابطه در سایت قرار گرفته است. دوره آموزش معماری Linq ...

1395/01/15 3387 بازدید
دسترسی-به-داده-ها-با-استفاده-از-linq

دسترسی به داده ها با استفاده از LINQ


در این دوره آموزشی با نحوه استرسی به داده ها با استفاده از Linq آشنا می شوید. این دوره آموزشی محصول Pluralsight است و نحوه کار با پایگاه داده هایی ما...

1395/01/15 6133 بازدید
اصول-linq

اصول LINQ


Linq یک زبان پرس و جو برای ارتباط با هر نوع منبع داده ای است.شما قبل از اینکه بخواهید از Linq2sql یا Linqxml استفاده کنید باید نحوه نوشتن کدهای Linq ر...

1395/01/15 4195 بازدید
سیستم-پیگیری-بانک-اطلاعاتی-پیمانکارا

سیستم پیگیری بانک اطلاعاتی پیمانکاران آسفالت شهرداری مشهد


  سیستم پیگیری بانک اطلاعاتی پیمانکاران شهرداری منطقه 11 مشهد پیاده سازی این نرم افزار در محیط توسعه Microsoft Visual Studio 2010 و از SQL Serve...

1395/01/14 8249 بازدید
مجموعه-کتاب-های-موسسه-oreilly

مجموعه کتاب های موسسه O'Reilly


موسسه O'Reilly یکی از انتشارات و تولیدکنندگان آموزش های تخصصی است که دوره های تصویری و کتاب های زیادی تا کنون منتشر کرده است. یک مجموعه کامل و قدرتمن...

1395/01/10 17776 بازدید
آموزش-linq-در-c

آموزش LINQ در #C


در این آموزش تصویری با کوئری نویسی به زبان Linq در C#.NET آشنا می شوید. این دوره آموزشی محصول موسسه Udemy می باشد. سرفصل های دوره: مقدمه ای بر L...

1394/12/27 3255 بازدید
دوره-تمرین-linq

دوره تمرین LINQ


در این آموزش تصویری با تمرین های خوبی در زمینه LINQ آشنا می شوید. این دوره آموزشی محصول موسسه Pluralsight می باشد. سرفصل های دوره: معرفی LINQ ...

1394/12/27 2337 بازدید