LinQ操作汇总(From CSharpSamples)

基本方法可以查看这里 http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx
最近学习LINQ资料不是很多,从CSHARPSAMPLE写一比较有用的例子方便大家学习。
1.INSERT/UPDATE/DELETE
insert Simple

insert one to Many

public   void  LinqToSqlInsert03()  {

    Northwind db2 
= new Northwind(connString);

    DataLoadOptions ds 
= new DataLoadOptions();
    ds.LoadWith
<nwind.Employee>(p => p.EmployeeTerritories);
    ds.LoadWith
<nwind.EmployeeTerritory>(p => p.Territory);

    db2.LoadOptions 
= ds;
    var q 
= (
        from e 
in db.Employees
        where e.FirstName 
== "Nancy"
        select e);



    Console.WriteLine(
"*** BEFORE ***");
    ObjectDumper.Write(q, 
1);


    Console.WriteLine();
    Console.WriteLine(
"*** INSERT ***");
    var newEmployee 
= new Employee { FirstName = "Kira",
                                     LastName 
= "Smith"
                                   }
;
    var newTerritory 
= new Territory { TerritoryID = "12345",
                                       TerritoryDescription 
= "Anytown",
                                       Region 
= db.Regions.First()
                                     }
;
    var newEmployeeTerritory 
= new EmployeeTerritory { Employee = newEmployee,
                                                       Territory 
= newTerritory
                                                     }
;
    db.Employees.InsertOnSubmit(newEmployee);
    db.Territories.InsertOnSubmit(newTerritory);
    db.EmployeeTerritories.InsertOnSubmit(newEmployeeTerritory);
    db.SubmitChanges();


    Console.WriteLine();
    Console.WriteLine(
"*** AFTER ***");
    ObjectDumper.Write(q, 
2);



    Cleanup66();  
// Restore previous database state
}


update simple
update mutiple



public   void  LinqToSqlInsert06()  {
    Console.WriteLine(
"*** BEFORE ***");
    ObjectDumper.Write(from c 
in db.OrderDetails where c.OrderID == 10255 select c);


    Console.WriteLine();
    Console.WriteLine(
"*** DELETE ***");
    
//Beverages
    OrderDetail orderDetail = db.OrderDetails.First(c => c.OrderID == 10255 && c.ProductID == 36);

    db.OrderDetails.DeleteOnSubmit(orderDetail);
    db.SubmitChanges();


    Console.WriteLine();
    Console.WriteLine(
"*** AFTER ***");
    ClearDBCache();
    ObjectDumper.Write(from c 
in db.OrderDetails where c.OrderID == 10255 select c);



    Cleanup69();  
// Restore previous database state
}


delete one to many
where

public   void  LinqToSqlWhere02()  {
    var q 
=
        from e 
in db.Employees
        where e.HireDate 
>= new DateTime(199411)
        select e;

    ObjectDumper.Write(q);
}


first condition

public   void  LinqToSqlSelect01()  {
    var q 
=
        from c 
in db.Customers
        select c.ContactName;

    ObjectDumper.Write(q);
}


public   void  LinqToSqlSelect04()  {
    var q 
=
        from p 
in db.Products
        select 
new {p.ProductID, HalfPrice = p.UnitPrice / 2};
    ObjectDumper.Write(q, 
1);
}


public   void  LinqToSqlSelect05()  {
    var q 
=
        from p 
in db.Products
        select 
new {p.ProductName, Availability = p.UnitsInStock - p.UnitsOnOrder < 0 ? "Out Of Stock""In Stock"};

    ObjectDumper.Write(q, 
1);
}


public   void  LinqToSqlSelect10()  {
    var q 
= (
        from c 
in db.Customers
        select c.City )
        .Distinct();

    ObjectDumper.Write(q);
}


public   void  LinqToSqlCount01()  {
    var q 
= db.Customers.Count();
    Console.WriteLine(q);
}

public   void  LinqToSqlCount02()  {
    var q 
= db.Products.Count(p => !p.Discontinued);
    Console.WriteLine(q);
}

public   void  LinqToSqlCount03()  {
    var q 
= db.Orders.Select(o => o.Freight).Sum();
    Console.WriteLine(q);
}

public   void  LinqToSqlCount05()  {
    var q 
= db.Products.Select(p => p.UnitPrice).Min();
    Console.WriteLine(q);
}

public   void  LinqToSqlCount07()  {
    var categories 
=
        from p 
in db.Products
        group p by p.CategoryID into g
        select 
new {
            CategoryID 
= g.Key,
            CheapestProducts 
=
                from p2 
in g
                where p2.UnitPrice 
== g.Min(p3 => p3.UnitPrice)
                select p2
        }
;

    ObjectDumper.Write(categories, 
1);
}

public   void  LinqToSqlCount08()  {
    var q 
= db.Employees.Select(e => e.HireDate).Max();
    Console.WriteLine(q);
}

public   void  LinqToSqlCount11()  {
    var q 
= db.Orders.Select(o => o.Freight).Average();
    Console.WriteLine(q);
}

public   void  LinqToSqlCount12()  {
    var q 
= db.Products.Average(p => p.UnitPrice);
    Console.WriteLine(q);
}

public   void  LinqToSqlCount13()  {
    var categories 
=
        from p 
in db.Products
        group p by p.CategoryID into g
        select 
new {
            g.Key, 
            ExpensiveProducts 
=
                from p2 
in g
                where p2.UnitPrice 
> g.Average(p3 => p3.UnitPrice)
                select p2
        }
;

    ObjectDumper.Write(categories, 
1);
}



join

public   void  LinqToSqlPaging01()  {
    var q 
= (
        from c 
in db.Customers
        orderby c.ContactName
        select c)
        .Skip(
50)
        .Take(
10);

    ObjectDumper.Write(q);
}

你可能感兴趣的:(sample)