LINQ C# Tutorial

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;            
using System.Data.SqlClient; 
using System.Data.Linq;      
using System.Data.Common;
using System.Text;
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection thisConnection = new SqlConnection(
                @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename='NORTHWND.MDF';" +
                @"Integrated Security=True;Connect Timeout=30;User Instance=true");
            SqlDataAdapter thisAdapter = new SqlDataAdapter("SELECT CustomerID, CompanyName FROM Customers", thisConnection);
            SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);
            DataSet thisDataSet = new DataSet();
            SqlDataAdapter custAdapter = new SqlDataAdapter("SELECT * FROM Customers", thisConnection);
            SqlDataAdapter orderAdapter = new SqlDataAdapter("SELECT * FROM Orders", thisConnection);
            custAdapter.Fill(thisDataSet, "Customers");
            orderAdapter.Fill(thisDataSet, "Orders");
            DataRelation custOrderRel = thisDataSet.Relations.Add("CustOrders",
                 thisDataSet.Tables["Customers"].Columns["CustomerID"],
                 thisDataSet.Tables["Orders"].Columns["CustomerID"]);
            var customers = thisDataSet.Tables["Customers"].AsEnumerable();
            var orders = thisDataSet.Tables["Orders"].AsEnumerable();
            var preferredCustomers = from c in customers
                where c.GetChildRows("CustOrders").Length > 10
                select c;
            foreach (var customer in preferredCustomers)
            {
                Console.WriteLine(customer.GetChildRows("CustOrders").Length);
                Console.WriteLine(customer["CustomerID"]);
            }
            thisConnection.Close();
        }
    }