LINQ presentation
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

LINQ presentation

  • 2,112 views
Uploaded on

LINQ presentation by Chi Khang...

LINQ presentation by Chi Khang
HCMC Open University 2009

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,112
On Slideshare
2,112
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
101
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Key Message:
  • Key Message:
  • Key Message:
  • Key Message:
  • Key Message:

Transcript

  • 1. LINQ
    TrầnChí Khang
    Microsoft Student Partners
    Email: khangtran1990@hotmail.com
  • 2. NỘIDUNG
  • Dữ liệu có thể được lưu trữ ở nhiều nơi
    • Database(SQL Server,Oracle …)
    • 12. XML files
    • 13. File  (Access, Excel …)
    Cách giao tiếp ?
  • 14. KHÁI NIỆM LINQ
    • Là ngôn ngữ truy vấn được tích hợp vào ngôn ngữ lập trình (VB, C#, …).
    • 15. Đưa ra khả năng lập trình mới trong .NET-Giải pháp lập trình hợp nhất
  • from customer in Customers
    where customer.Name == "Foysal"
    select customer
  • 16. LINQ TO OBJECT
    Sử dụng LINQ để truy vấn tập hợp các đối tượng dưới dạng IEnumerable hoặc IEnumerable<T>
    Without LINQ
    With LINQ
    List<Students> MaleStudents = new List<Students>();
    Foreach(Students student in Students)
    {
    if(student.sex == “male”)
    {
    MaleStudents.Add(student );
    }
    }
    IEnumerable <Students> MaleStudents =
    from student in Students
    where student.sex==“male”
    select student;
  • 17. LINQ TO XML
    XmlDocumentdoc = newXmlDocument();
    XmlElementbooks = doc.CreateElement("books");
    XmlElement author = doc.CreateElement("author");
    author.InnerText = "Fabrice Marguerie";
    XmlElement price= doc.CreateElement(“price");
    author2.InnerText = “80”;
    XmlElement publishyear = doc.CreateElement(“publishyear");
    author3.InnerText = “2008";
    XmlElementtitle = doc.CreateElement("title");
    title.InnerText = “ABC";
    XmlElementbook = doc.CreateElement("book");
    book.AppendChild(author1);
    book.AppendChild(author2);
    book.AppendChild(author3);
    book.AppendChild(title);
    books.AppendChild(book);
    doc.AppendChild(books);
    XDocument xmlbooks = newXDocument(
    newXDeclaration("1.0", "UTF-16", "yes"),
    newXElement("books",
    newXElement("book", newXAttribute("id","B01"),
    newXElement("author", "Fabrice Marguerie"),
    newXElement("price", 80),
    newXElement("publishyear", 2008),
    newXElement("title", "ABC"))));
    <?xmlversion="1.0"encoding="utf-8" ?>
    <books>
    <book id = “B01”>
    <title>ABC</title>
    <author>Fabrice Marguerie </author>
    <price>80</price>
    <pulishyear>2008</pulishyear>
    </book>
    </books>
  • 18. LINQ TO XML
    Cung cấp 1 công cụ mạnh mẽ trong việc truy vấnXML
    var books = from b in xmlbooks.Elements("book")
    where(String)b.Element("price") == 80
    selectnew
    {
    title = (String)b.Element("tilte"),
    author = (String)b.Element("author")
    };
    foreach (var book in books)
    {
    Console.WriteLine(book);
    }
  • 19. LINQ TO DATASET
    DATASET ?
    LINQ to DataSet giúp truy vấn đối tượng Dataset dễ dàng và nhanh chóng
    var cus = from c in customersDataset.Tables["Customers"].AsEnumerable()
    select c["CustomerID"];
    foreach (var c in cus)
    {
    Console.WriteLine("{0}", c);
    }
  • 20. LINQ TO SQL
    LINQ to SQL là một phiên bản Object-Relational Mapping (ORM).
    Database
    DataContext
    Table
    Class
    View
    Class
    Column
    Field / Property
    Relationship
    Field / Property
    Stored Procedure
    Method
  • 21. LớpDataContext
    • Là một class kếtnốiđếnCSDL ở SQL Server
    • 22. Chuyển câu truy vấn thành câu lệnh SQL
    • 23. Đảm nhận việc tương tác với CSDL
    • 24. Thay đổi CSDLthông qua phương thức SubmitChanges().
  • LINQTOSQL
    NorthwindDataContext db = newNorthwindDataContext();
    varquery = from c in db.Customers
    wherec.City == "London"
    selectnew { Name = c.ContactName, Country = c.Country, City = c.City };
  • 25. CẤU TRÚC LINQ TO SQL
    from c in db.Customers
    where c.City == "London"
    select new {Name, Phone};
    db.Customers.InsertOnSubmit(c1);
    c2.City = “Seattle";
    db.Customers.DeleteOnSubmit(c3);
    SELECT CompanyName, Phone
    FROM Customers
    WHERE City == 'London'
    INSERT INTO Customers…
    UPDATE Customers…DELETE FROM Customers…
  • 26. Transaction
    Transactionlà một dịch vụ nhằm đảm bảo rằng một tập các thao tác độc lập sẽ được thực thi như một đơn vị duy nhất
    NorthwindDataContext db = newNorthwindDataContext();
    using(TransactionScope ts = newTransactionScope())
    {
    try
    {
    Productprod1 = db.Products.First(p => p.ProductID == 4);
    Productprod2 = db.Products.First(p => p.ProductID == 5);
    prod1.UnitsInStock -= 3;
    prod2.UnitsInStock -= 5;
    db.SubmitChanges();
    ts.Complete();
    }
    catch(Exception e)
    {
    Console.WriteLine(e.Message);
    Console.WriteLine("Error submitting changes,all changes rolled back.");
    }
    }
  • 27. DeferredExecution
    var q = from d in db.Doctors
    whered.City == "London"
    selectd;
    if(orderByLocation)
    {
    q = from d in q
    orderbyd.Country, d.City
    selectd;
    }
    elseif (orderByName)
    {
    q = from d in q
    orderby d.DoctorName
    select d;
    }
    foreach(Doctor d in q) Console.WriteLine(d.DoctorName);
  • 28. ADO.NET
  • 29. TruycậpCSDLvới ADO.NET
    SqlConnection connection = new SqlConnection(…);
    connection.Open();
    SqlCommandcmd = new SqlCommand(
    “Select Name, Phone
    From Customers
    Where City = @city “);
    cmd.Parameters.AddWithValue(“@city”, ”London”);
    Datareaderdr = connection.Execute(cmd);
    While (dr.Read())
    {
    string name = dr.GetString(0);
    string phone = dr.GetString(1);
    DateTime date = dr.GetDateTime(2);
    }
    dr.Close();
    Connection.Close();
    Chuỗi truy vấn
    Xácđịnhkiểu
    dữliệukếtquả
  • 30. ADO.NETENTITYFRAMEWORK
  • 31. EntityDataModel (EDM)
  • 32. LINQvsADO.NET
    LINQ là tập mở rộng cho phép viết các câu truy vấn ngay trong các ngôn ngữ lập trình.
    ADO.NET là công nghệ cho phép các ứng dụng có thể kết nối và làm việc với các loại CSDL khác nhau
    LINQ không phải là một công nghệ được tạo ra để thay thế ADO.NET
  • 33. DEMO
  • 34. Cảm ơn !