LINQ - компонент Microsoft .NET Framework, який надає можливості виконання запитів даних до мов, що входять у .NET. Хоча порти існують для PHP (PHPLinq), JavaScript(linq.js), TypeScript (linq.ts),і ActionScript (ActionLinq), - ні один із них не є рівним LINQ в C#.
    
    
 
    Давайте розробимо додаток на мові прогормаування С#, за допомогою якого ми при натисканні на кнопку button1 виведемо інформацію про всі експортні товари, поле країни походження яких рівне “uk” в dataGridView1.
    
    
 
     namespace ExportTest
    
    
 
    {
    
    
 
        public partial class Form1 : Form
    
    
 
        {
    
    
 
            public Form1()
    
    
 
            {
    
    
 
                InitializeComponent();
    
    
 
            }
    
    
 
            private void Form1_Load(object sender, EventArgs e)
    
    
 
            {
    
    
 
                using (Context context = new Context()) 
    
    
 
                {
    
    
 
                    dataGridView1.DataSource = context.Goods.ToList<Goods>();
    
    
 
                }
    
    
 
            }
    
    
 
            private void button1_Click(object sender, EventArgs e)
    
    
 
            {
    
    
 
                dataGridView1.Columns.Clear();
    
    
 
                using (Context context = new Context())
    
    
 
                {
    
    
 
       dataGridView1.DataSource = context.Goods.Where(x=>x.ExportCountry     == "uk").ToList<Goods>();
    
    
 
                }
    
    
 
            }
    
    
 
        }
    
    
 
    }
    
    
 
    Отже, Linq є чудовим інструментом при роботі з базами даних. І він має свої переваги: 
    
    
 
    - Декларативний підхід робить запити більш зрозумілими та компактними;
    
 
    - Розширюваність та дерева виразів дозволяють здебільшого узгоджено запитувати кілька джерел;
    
 
    - Широкий діапазон операторів, що надаються за замовчуванням, та інші можуть бути легко додані для LINQ до об'єктів;
    
 
    - Навіть запити в процесі можуть бути реалізовані способами, відмінними від LINQ для об'єктів - наприклад Parallel LINQ і моя власна платформа Push LINQ;
    
 
    - Здорово, що можна уникнути SQL у рядках;
    
 
    - Мовні функції, введені в першу чергу для LINQ, широко застосовуються в інших місцях;
    
 
    Хоча у нього є суттєві недоліки:
    
    
 
    - Вирази запитів недостатньо добре зрозумілі та використовуються надто часто. Часто виклик простого методу коротший і простий;
    
 
    - Неминучі невідповідності між невідповідністю імпедансу постачальника все ще присутні, що розумно, але необхідно розуміти;
    
 
    - Завжди будуть якісь речі, які ви можете зробити в SQL, але не в LINQ;
    
 
    - Не розуміючи, що відбувається, легко написати дуже неефективний код;
    
 
    - Це новий спосіб мислення про доступ до даних для більшості розробників, і потрібен час для розуміння, щоб просочитися;
    
 
    - Деякі оператори є "missing", особливо еквіваленти OrderBy для речей, відмінних від замовлення, наприклад, пошук елемента з максимальним значенням властивості;
    
 
    Список використаних джерел:
    
    
 
    1. http://www.linqpad.net/ 
    
    
 
    _________________
    
    
 
    Науковий керівник: Кіш Надія Василівна, кандидат педагогічних наук, доцент, Державний вищий навчальний заклад «Ужгородський національний університет», м. Ужгород