際際滷

際際滷Share a Scribd company logo
LTUDQL 2




LINQ to SQL



                   B湛i T畉n L畛c
              btloc@fit.hcmus.edu.vn




                       .           -1-   息HCMUS
LTUDQL 2

LINQ to SQL


    L k畛 thu畉t ORM (Object Relation Mapping) c畛a Microsoft
     d湛ng 畛 叩nh x畉 quan h畛 CSDL sang quan h畛 畛i t動畛ng.
    Gi炭p cho vi畛c l畉p tr狸nh giao ti畉p CSDL d畛 dng h董n.
    H畛 tr畛 nh畛ng thao t叩c c董 s畛 d畛 li畛u: th棚m, x坦a, s畛a, c畉p nh畉t
    H畛 tr畛 transaction, view, stored procedure




                               .            -2-         息HCMUS
LTUDQL 2

C叩c b動畛c thao t叩c CSDL v畛i LINQ to SQL


    K畉t n畛i 畉n lo畉i CSDL m LINQ to SQL h畛 tr畛
    Th畛c hi畛n 叩nh x畉 ORM (t畉o file <TenCSDL>.dbml). V鱈 d畛:
     TruongHoc.dbml
    Kh畛i t畉o 畛i t動畛ng CSDL 達 叩nh x畉 (畛i t動畛ng
     <TenCSDL><DataContext>). V鱈 d畛: TruongHocDataContext
    S畛 d畛ng 畛i t動畛ng CSDL tr棚n 畛 thao t叩c CSDL




                            .            -3-       息HCMUS
LTUDQL 2

Lo畉i CSDL LINQ to SQL h畛 tr畛


    Ch畛 h畛 tr畛 c叩c lo畉i CSDL sau:
       Microsoft SQL Server
       Microsoft SQL Server Compact (*.sdf)
       Microsft SQL Server Database File (*.mdf)
    L動u 箪: Khi t畉o report v畛i Crystal Report, Crystal Report ch畛
     h畛 tr畛 Microsoft SQL Server, kh担ng k畉t n畛i tr動c ti畉p 動畛c
     v畛i *.sdf v *.mdf




                                  .                 -4-   息HCMUS
LTUDQL 2

Th畛c hi畛n 叩nh x畉 ORM


    T畉o file TenCSDL.dbml
    K辿o t畉t c畉 c叩c b畉ng vo c畛a s畛 Design
    C坦 th畛 k辿o c叩c View, Stored Procedure, Function vo c畛a s畛
     Design
    L動u 箪 khi 達 th畛c hi畛n 叩nh x畉 trong project s畉 xu畉t hi畛n file
     app.config. Trong file ny ch畛a chu畛i connectionstring. Khi
     em 畛ng d畛ng qua m叩y kh叩c ch畉y ta ch畛 c畉n ch畛nh s畛a gi叩 tr畛
     chu畛i connectionstring trong file ny.




                              .            -5-          息HCMUS
LTUDQL 2

Kh畛i t畉o 畛i t動畛ng CSDL 達 叩nh x畉


   1.Su dung gia tri chuoi connectionstring
   trong file app.config
   Dim db As New TruongHocDataContext()

   2.Khong su dung gia tri chuoi
   connectionstring trong file app.config
   Dim cnStr As String
   cnStr = ..
   Dim db As New TruongHocDataContext(cnStr)


                             .      -6-   息HCMUS
LTUDQL 2

Truy v畉n d畛 li畛u kh担ng i畛u ki畛n


    Public Function LayDanhSachKhachHang() As List(Of
    Customer)
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Select c
       Return query.ToList()
    End Function




                              .    -7-      息HCMUS
LTUDQL 2

Truy v畉n d畛 li畛u c坦 i畛u ki畛n


    Public   Function LayDanhSachKhachHangTheoThanhPho
    _
    (ByVal tp As String) As List(Of Customer)
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Where c.City = tp
                   Select c
       Return query.ToList()
    End Function




                                .    -8-      息HCMUS
LTUDQL 2
Truy v畉n d畛 li畛u  Ki畛u tr畉 v畛 kh担ng x叩c 畛nh (Anonymous
Type)

    Public Function LayDanhThongTinKhachHang() As
    IList
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Select c.ContactName, c.Phone
       Return query.ToList()
    End Function




                              .           -9-        息HCMUS
LTUDQL 2

Truy v畉n d畛 li畛u  Ki畛u tr畉 v畛 x叩c 畛nh


    Public Function LayDanhThongTinKhachHang1() As
    List(Of ThongTinKhachHang)
      Dim db As New NorthwindDataContext()
      Dim query = From c In db.Customers
                  Select New ThongTinKhachHang With
    {.ContactName = c.ContactName, .Phone = c.Phone}
      Return query.ToList()
    End Function

     Ph畉i 畛nh ngh挑a l畛p ThongTinKhachHang c坦 thu畛c t鱈nh
      ContactName v Phone


                               .          - 10 -    息HCMUS
LTUDQL 2

Truy v畉n d畛 li畛u v畛i distinct


    Public Function LayDanhSachThanhPho() As List(Of
    String)
       Dim db As New NorthwindDataContext()
       Dim query = From c In db.Customers
                   Select c.City
                   Distinct
       Return query.ToList()
    End Function




                                .   - 11 -   息HCMUS
LTUDQL 2

Truy v畉n v畛i i畛u ki畛n AndAlso, OrElse


    Dim q = From p In db.Products
            Where p.UnitsInStock <= p.ReorderLevel
            AndAlso Not p.Discontinued
            Select p

    Dim q = From p In db.Products _
            Where p.UnitPrice > 10.0# OrElse
    p.Discontinued
            Select p




                              .          - 12 -   息HCMUS
LTUDQL 2

Truy v畉n d嘆ng 畉u ti棚n


    Dim shipper As Shipper
    shipper = db.Shippers.First()

    Dim cust = From c In db.Customers
               Where c.CustomerID = "BONAP" Take 1

    Dim ord = (From o In db.Orders
               Where o.Freight > 10D
               Select o).First()




                         .          - 13 -   息HCMUS
LTUDQL 2

Insert 1 d嘆ng d畛 li畛u


    Dim newCustomer = New Customer With {.CustomerID
    = "MCSFT", .CompanyName = "Microsoft",
    .ContactName = "John Doe", .ContactTitle = "Sales
    Manager", .Address = "1 Microsoft Way", .City =
    "Redmond", .Region = "WA", .PostalCode = "98052",
    .Country = "USA", .Phone = "(425) 555-1234", .Fax
    = Nothing}

    db.Customers.InsertOnSubmit(newCustomer)
    db.SubmitChanges()




                         .         - 14 -      息HCMUS
LTUDQL 2

Insert 1 d嘆ng d畛 li畛u 1-many

    Dim newCategory = New Category With
    {.CategoryName = "Widgets", .Description = "Widgets are the
    customer-facing analogues " & "to sprockets and cogs."}

    Dim newProduct = New Product With {.ProductName = "Blue
    Widget",.UnitPrice = 34.56#,.Category = newCategory}

    db.Categories.InsertOnSubmit(newCategory)
    db.SubmitChanges()




                                .               - 15 -    息HCMUS
LTUDQL 2

Insert 1 d嘆ng d畛 li畛u many - many


    Dim newEmployee = New Employee With {.FirstName = "Kira",
    .LastName = "Smith"}

    Dim newTerritory = New Territory With {.TerritoryID =
    "12345", .TerritoryDescription = "Anytown",
    .Region = db.Regions.First()}

    Dim newEmployeeTerritory = New EmployeeTerritory
    With{.Employee = newEmployee, .Territory = newTerritory}

    db.Employees.InsertOnSubmit(newEmployee)
    db.Territories.InsertOnSubmit(newTerritory)
    db.EmployeeTerritories.InsetOnSubmit(newEmployeeTerritory)
    db.SubmitChanges()


                              .          - 16 -      息HCMUS
LTUDQL 2

Update 1 d嘆ng d畛 li畛u


    Dim cust As Customer
    cust = (From c In db.Customers
                Where c.CustomerID = "ALFKI"
                Select c).First()

    cust.ContactTitle = "Vice President"
    db.SubmitChanges()




                         .         - 17 -      息HCMUS
LTUDQL 2

Update nhi畛u d嘆ng d畛 li畛u


     Dim query = From p In db.Products _
              Where CInt(p.CategoryID.Value) = 1
              Select p
     Dim lst As List (of Product)
     lst = query.ToList()
     For Each item As Product In lst
          item.UnitPrice += 1.0
     Next

     db.SubmitChanges()



                            .       - 18 -   息HCMUS
LTUDQL 2

Delete m畛t d嘆ng d畛 li畛u


     Dim order As Order_Detail
     order = (From c In db.Order_Details _
              Where c.OrderID = 10255 AndAlso
    c.ProductID = 36
              Select c).First()

     db.Order_Details.DeleteOnSubmit(order)
     db.SubmitChanges()




                          .        - 19 -     息HCMUS
LTUDQL 2

Delete nhi畛u d嘆ng d畛 li畛u

     Dim orderDetails = _
     From o In db.Order_Details _
     Where o.Order.CustomerID = "WARTH" AndAlso o.Order.EmployeeID =
    3 Select o

     Dim order = _
     (From o In db.Orders _
      Where o.CustomerID = "WARTH" AndAlso o.EmployeeID = 3 _
      Select o).First()

     For Each od As Order_Detail In orderDetails
        db.Order_Details.DeleteOnSubmit(od)
     Next

     db.Orders.DeleteOnSubmit(order)
     db.SubmitChanges()

                                .             - 20 -      息HCMUS
LTUDQL 2

D湛ng c叩c stored procedure


    'Retrieve products based on adhoc query
    Dim products As IEnumerable(Of Product)
    products = From p In db.Products
               Where p.CategoryID = 1
               Select p
    'Retrieve products instead using a SPROC method
    products = db.GetProductsByCategory(1)
    'iterate over result
    For Each item As Product In products
         '....
    Next

                            .      - 21 -   息HCMUS
LTUDQL 2

Ph但n trang truy v畉n k畉t qu畉


    Public Function LaySanPham(ByVal startRow As
    Integer) As IEnumerable(Of Product)
      Dim db As New NorthwindDataContext()
      'Retrieve products based on adhoc query
      Dim products As IEnumerable(Of Product)
      products = From p In db.Products
                 Where p.CategoryID = 1
                 Select p
      Return products.Skip(startRow).Take(10)
    End Function



                              .    - 22 -   息HCMUS
LTUDQL 2

K畉t b畉ng (join)


    Public Function TimKiemHocSinhTheoTenLop(ByVal
    tenLop As String) As List (Of HocSinh)
       Dim db As New TruongHocDataContext()
       Dim query = From hs In db.HocSinhs
                   Join lh In db.LopHocs On hs.MaLop
    Equals lh.Ma
                   Where lh.Ten = tenLop
                   Select hs
       Return query.ToList()
    End Function



                         .         - 23 -   息HCMUS
LTUDQL 2

Tham kh畉o th棚m


    http://msdn.microsoft.com/en-us/vbasic/bb688085
    Project SampleQueries (LinQToSQLSamples.vb)




                             .           - 24 -        息HCMUS
LTUDQL 2

C但u h畛i?




           .   - 25 -   息HCMUS

More Related Content

Viewers also liked (6)

Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2
D滴ng inh
Thiet kegiaodien
Thiet kegiaodienThiet kegiaodien
Thiet kegiaodien
D滴ng inh
Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1
D滴ng inh
Hdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languagesHdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languages
D滴ng inh
Hdth03 ltudql02-user control
Hdth03 ltudql02-user controlHdth03 ltudql02-user control
Hdth03 ltudql02-user control
D滴ng inh
Hdth08 ltudql02-linq
Hdth08 ltudql02-linqHdth08 ltudql02-linq
Hdth08 ltudql02-linq
D滴ng inh
Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2Hdth02 ltudql02-su dungsubversion-2
Hdth02 ltudql02-su dungsubversion-2
D滴ng inh
Thiet kegiaodien
Thiet kegiaodienThiet kegiaodien
Thiet kegiaodien
D滴ng inh
Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1Hdth02 ltudql02-su dungsubversion-1
Hdth02 ltudql02-su dungsubversion-1
D滴ng inh
Hdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languagesHdth06 ltudql02-multi languages
Hdth06 ltudql02-multi languages
D滴ng inh
Hdth03 ltudql02-user control
Hdth03 ltudql02-user controlHdth03 ltudql02-user control
Hdth03 ltudql02-user control
D滴ng inh
Hdth08 ltudql02-linq
Hdth08 ltudql02-linqHdth08 ltudql02-linq
Hdth08 ltudql02-linq
D滴ng inh

Similar to Linq2 sql (20)

Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0
Kim Hyun Hai
04.report 120625040327-phpapp02
04.report 120625040327-phpapp0204.report 120625040327-phpapp02
04.report 120625040327-phpapp02
huynhtrong774129
LINQ presentation
LINQ presentationLINQ presentation
LINQ presentation
Tran Ngoc Son
C畉p nh畉t csdl ngay tr棚n datagridview trong vb
C畉p nh畉t csdl ngay tr棚n datagridview trong vbC畉p nh畉t csdl ngay tr棚n datagridview trong vb
C畉p nh畉t csdl ngay tr棚n datagridview trong vb
ANHMATTROI
Ung dung web chuong 6
Ung dung web  chuong 6Ung dung web  chuong 6
Ung dung web chuong 6
Giang Nguy畛n
S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...
S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...
S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...
zzsunzz
7.databinding
7.databinding7.databinding
7.databinding
Dao Uit
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
truong le hung
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
TI Anh
6.adapterset
6.adapterset6.adapterset
6.adapterset
Dao Uit
Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...
Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...
Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...
MasterCode.vn
Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3
D滴ng inh
担n t畉p dbms
担n t畉p dbms担n t畉p dbms
担n t畉p dbms
Bec Ten Van
Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...
Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...
Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...
MasterCode.vn
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
phiagame
Android N但ng cao-Bi 4: Content Provider
Android N但ng cao-Bi 4: Content ProviderAndroid N但ng cao-Bi 4: Content Provider
Android N但ng cao-Bi 4: Content Provider
Phuoc Nguyen
04 ado
04 ado04 ado
04 ado
hao191999
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
Dao Uit
Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0Hdth.chuong5 ado.netv2.0
Hdth.chuong5 ado.netv2.0
Kim Hyun Hai
04.report 120625040327-phpapp02
04.report 120625040327-phpapp0204.report 120625040327-phpapp02
04.report 120625040327-phpapp02
huynhtrong774129
LINQ presentation
LINQ presentationLINQ presentation
LINQ presentation
Tran Ngoc Son
C畉p nh畉t csdl ngay tr棚n datagridview trong vb
C畉p nh畉t csdl ngay tr棚n datagridview trong vbC畉p nh畉t csdl ngay tr棚n datagridview trong vb
C畉p nh畉t csdl ngay tr棚n datagridview trong vb
ANHMATTROI
Ung dung web chuong 6
Ung dung web  chuong 6Ung dung web  chuong 6
Ung dung web chuong 6
Giang Nguy畛n
S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...
S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...
S vnet.vn 51. [silde bi gi畉ng] l畉p tr狸nh tr棚n m担i tr動畛ng windows v畛i ado.net...
zzsunzz
7.databinding
7.databinding7.databinding
7.databinding
Dao Uit
Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
truong le hung
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
TI Anh
6.adapterset
6.adapterset6.adapterset
6.adapterset
Dao Uit
Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...
Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...
Bi 6: L畉p tr狸nh v畛i CSDL Ki畉n tr炭c k畉t n畛i & Bu畛c d畛 li畛u - L畉p tr狸nh winfor...
MasterCode.vn
Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3Hdth09 ltudql02-linq-e3
Hdth09 ltudql02-linq-e3
D滴ng inh
担n t畉p dbms
担n t畉p dbms担n t畉p dbms
担n t畉p dbms
Bec Ten Van
Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...
Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...
Bi 5: ADO.NET & Ki畉n tr炭c kh担ng k畉t n畛i (ti畉p) i畛u khi畛n DataGridView,Combo...
MasterCode.vn
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
phiagame
Android N但ng cao-Bi 4: Content Provider
Android N但ng cao-Bi 4: Content ProviderAndroid N但ng cao-Bi 4: Content Provider
Android N但ng cao-Bi 4: Content Provider
Phuoc Nguyen
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#2.gioi thieu co ban ado.net cho nguoi lap trinh c#
2.gioi thieu co ban ado.net cho nguoi lap trinh c#
Dao Uit

More from D滴ng inh (9)

Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-
D滴ng inh
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
D滴ng inh
07bis.thiet kedulieu
07bis.thiet kedulieu07bis.thiet kedulieu
07bis.thiet kedulieu
D滴ng inh
06.mo hinhhoayeucau
06.mo hinhhoayeucau06.mo hinhhoayeucau
06.mo hinhhoayeucau
D滴ng inh
05.thu thapyeucau
05.thu thapyeucau05.thu thapyeucau
05.thu thapyeucau
D滴ng inh
04.mo daucnpm
04.mo daucnpm04.mo daucnpm
04.mo daucnpm
D滴ng inh
03.ke thua daxa
03.ke thua daxa03.ke thua daxa
03.ke thua daxa
D滴ng inh
02.thiet kelop
02.thiet kelop02.thiet kelop
02.thiet kelop
D滴ng inh
01.lap trinhhuongdoituong
01.lap trinhhuongdoituong01.lap trinhhuongdoituong
01.lap trinhhuongdoituong
D滴ng inh
Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-
D滴ng inh
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
D滴ng inh
07bis.thiet kedulieu
07bis.thiet kedulieu07bis.thiet kedulieu
07bis.thiet kedulieu
D滴ng inh
06.mo hinhhoayeucau
06.mo hinhhoayeucau06.mo hinhhoayeucau
06.mo hinhhoayeucau
D滴ng inh
05.thu thapyeucau
05.thu thapyeucau05.thu thapyeucau
05.thu thapyeucau
D滴ng inh
04.mo daucnpm
04.mo daucnpm04.mo daucnpm
04.mo daucnpm
D滴ng inh
03.ke thua daxa
03.ke thua daxa03.ke thua daxa
03.ke thua daxa
D滴ng inh
02.thiet kelop
02.thiet kelop02.thiet kelop
02.thiet kelop
D滴ng inh
01.lap trinhhuongdoituong
01.lap trinhhuongdoituong01.lap trinhhuongdoituong
01.lap trinhhuongdoituong
D滴ng inh

Recently uploaded (20)

T狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vn
T狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vnT狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vn
T狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vn
hoclagioivn
L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025
L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025
L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025
ngocntt2
B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...
B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...
B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...
Nguyen Thanh Tu Collection
Bai Giang Bien Doi Nang Luong tren co the song.pptx
Bai Giang Bien Doi Nang Luong tren co the song.pptxBai Giang Bien Doi Nang Luong tren co the song.pptx
Bai Giang Bien Doi Nang Luong tren co the song.pptx
NguyenMinhVuongTTTNT
GIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzcz
GIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzczGIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzcz
GIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzcz
doannvthtyhdb
B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
Nguyen Thanh Tu Collection
CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...
CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...
CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...
Nguyen Thanh Tu Collection
50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...
50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...
50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...
Nguyen Thanh Tu Collection
B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...
B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...
B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...
Nguyen Thanh Tu Collection
bi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛i
bi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛ibi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛i
bi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛i
NguynQuangTrung31
B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...
B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...
B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...
Nguyen Thanh Tu Collection
Bai 9 Nguoi ngoi doi truoc hien nha.pptx
Bai 9 Nguoi ngoi doi truoc hien nha.pptxBai 9 Nguoi ngoi doi truoc hien nha.pptx
Bai 9 Nguoi ngoi doi truoc hien nha.pptx
phamngoc153cp
Qwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si si
Qwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si siQwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si si
Qwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si si
vovanhieu2018vl
B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
Nguyen Thanh Tu Collection
ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024
ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024
ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024
GAMERDREAM
Nhiet Do _ Nhiet Giai _ Nhiet Luong.pptx
Nhiet Do _ Nhiet Giai _ Nhiet Luong.pptxNhiet Do _ Nhiet Giai _ Nhiet Luong.pptx
Nhiet Do _ Nhiet Giai _ Nhiet Luong.pptx
NguyenMinhVuongTTTNT
Giai-tich-22-Dai hoc bach khoa H N畛i.pdf
Giai-tich-22-Dai hoc  bach khoa H N畛i.pdfGiai-tich-22-Dai hoc  bach khoa H N畛i.pdf
Giai-tich-22-Dai hoc bach khoa H N畛i.pdf
NguyenMinhVuongTTTNT
M HNH TR働畛NG TIU H畛C NG畛C LM.docxxxx
M HNH TR働畛NG TIU H畛C NG畛C LM.docxxxxM HNH TR働畛NG TIU H畛C NG畛C LM.docxxxx
M HNH TR働畛NG TIU H畛C NG畛C LM.docxxxx
YnNhi943027
Bai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdf
Bai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdfBai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdf
Bai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdf
KimChi409095
B叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ng
B叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ngB叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ng
B叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ng
ssuser74c18e
T狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vn
T狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vnT狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vn
T狸m hi畛u th畛 th董 th畉t ng担n b叩t c炭 - Tinh hoa th董 動畛ng lu畉t | Hoclagioi.vn
hoclagioivn
L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025
L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025
L畛ch s畛 11 - 畛 ki畛m tra gi畛a h畛c k狸 2 - 2024-2025
ngocntt2
B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...
B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...
B畛 畛 THI H畛C SINH GI畛I V畉T L 12 TUY畛N CH畛N T畛 CC TR働畛NG THPT V NH畛NG 畛 ...
Nguyen Thanh Tu Collection
Bai Giang Bien Doi Nang Luong tren co the song.pptx
Bai Giang Bien Doi Nang Luong tren co the song.pptxBai Giang Bien Doi Nang Luong tren co the song.pptx
Bai Giang Bien Doi Nang Luong tren co the song.pptx
NguyenMinhVuongTTTNT
GIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzcz
GIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzczGIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzcz
GIAO DU味C HO味C cfdfdsfsdfdsfdsfsdfdczcxzcz
doannvthtyhdb
B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 10 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
Nguyen Thanh Tu Collection
CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...
CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...
CHUYN 畛 TON TH畛C T畉 12 H畛 TH畛NG BI T畉P TH畛C T畉 A D畉NG, GIP H畛C SINH N畉M...
Nguyen Thanh Tu Collection
50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...
50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...
50 畛 THI TH畛 T畛T NGHI畛P THPT 2025 - T畛 CC TR働畛NG CHUYN, S畛 GIO D畛C C畉 N働畛...
Nguyen Thanh Tu Collection
B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...
B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...
B畛 TEST KI畛M TRA CU畛I HK2 - GLOBAL SUCCESS 10,11,12 - (B畉N HS-GV) (10 畛 N T...
Nguyen Thanh Tu Collection
bi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛i
bi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛ibi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛i
bi thuy畉t tr狸nh v畛 畉i h畛c b叩ch khoa h n畛i
NguynQuangTrung31
B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...
B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...
B畛 畛 TUY畛N SINH VO L畛P 10 TI畉NG ANH - 25 畛 THI BM ST C畉U TRC M畛I NH畉T, ...
Nguyen Thanh Tu Collection
Bai 9 Nguoi ngoi doi truoc hien nha.pptx
Bai 9 Nguoi ngoi doi truoc hien nha.pptxBai 9 Nguoi ngoi doi truoc hien nha.pptx
Bai 9 Nguoi ngoi doi truoc hien nha.pptx
phamngoc153cp
Qwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si si
Qwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si siQwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si si
Qwetrusbs jsns js js 鱈 js 鱈 鱈 si 鱈 si 鱈 si si si
vovanhieu2018vl
B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
B畛 畛 KI畛M TRA CU畛I HK2 - TON 12 (C MA TR畉N - 畉C T畉) - CHU畉N C畉U TRC M畛I ...
Nguyen Thanh Tu Collection
ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024
ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024
ti li畛u ng畛 vn l畛p 12 nm 2025 v 2024
GAMERDREAM
Nhiet Do _ Nhiet Giai _ Nhiet Luong.pptx
Nhiet Do _ Nhiet Giai _ Nhiet Luong.pptxNhiet Do _ Nhiet Giai _ Nhiet Luong.pptx
Nhiet Do _ Nhiet Giai _ Nhiet Luong.pptx
NguyenMinhVuongTTTNT
Giai-tich-22-Dai hoc bach khoa H N畛i.pdf
Giai-tich-22-Dai hoc  bach khoa H N畛i.pdfGiai-tich-22-Dai hoc  bach khoa H N畛i.pdf
Giai-tich-22-Dai hoc bach khoa H N畛i.pdf
NguyenMinhVuongTTTNT
M HNH TR働畛NG TIU H畛C NG畛C LM.docxxxx
M HNH TR働畛NG TIU H畛C NG畛C LM.docxxxxM HNH TR働畛NG TIU H畛C NG畛C LM.docxxxx
M HNH TR働畛NG TIU H畛C NG畛C LM.docxxxx
YnNhi943027
Bai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdf
Bai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdfBai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdf
Bai 1 Li味ch su nganh Duo味c Vie味t Nam va The gioi.pdf
KimChi409095
B叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ng
B叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ngB叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ng
B叩o c叩o TTC - Nh坦m 1.pptx th畛c t畉 c畛ng 畛ng
ssuser74c18e

Linq2 sql

  • 1. LTUDQL 2 LINQ to SQL B湛i T畉n L畛c btloc@fit.hcmus.edu.vn . -1- 息HCMUS
  • 2. LTUDQL 2 LINQ to SQL L k畛 thu畉t ORM (Object Relation Mapping) c畛a Microsoft d湛ng 畛 叩nh x畉 quan h畛 CSDL sang quan h畛 畛i t動畛ng. Gi炭p cho vi畛c l畉p tr狸nh giao ti畉p CSDL d畛 dng h董n. H畛 tr畛 nh畛ng thao t叩c c董 s畛 d畛 li畛u: th棚m, x坦a, s畛a, c畉p nh畉t H畛 tr畛 transaction, view, stored procedure . -2- 息HCMUS
  • 3. LTUDQL 2 C叩c b動畛c thao t叩c CSDL v畛i LINQ to SQL K畉t n畛i 畉n lo畉i CSDL m LINQ to SQL h畛 tr畛 Th畛c hi畛n 叩nh x畉 ORM (t畉o file <TenCSDL>.dbml). V鱈 d畛: TruongHoc.dbml Kh畛i t畉o 畛i t動畛ng CSDL 達 叩nh x畉 (畛i t動畛ng <TenCSDL><DataContext>). V鱈 d畛: TruongHocDataContext S畛 d畛ng 畛i t動畛ng CSDL tr棚n 畛 thao t叩c CSDL . -3- 息HCMUS
  • 4. LTUDQL 2 Lo畉i CSDL LINQ to SQL h畛 tr畛 Ch畛 h畛 tr畛 c叩c lo畉i CSDL sau: Microsoft SQL Server Microsoft SQL Server Compact (*.sdf) Microsft SQL Server Database File (*.mdf) L動u 箪: Khi t畉o report v畛i Crystal Report, Crystal Report ch畛 h畛 tr畛 Microsoft SQL Server, kh担ng k畉t n畛i tr動c ti畉p 動畛c v畛i *.sdf v *.mdf . -4- 息HCMUS
  • 5. LTUDQL 2 Th畛c hi畛n 叩nh x畉 ORM T畉o file TenCSDL.dbml K辿o t畉t c畉 c叩c b畉ng vo c畛a s畛 Design C坦 th畛 k辿o c叩c View, Stored Procedure, Function vo c畛a s畛 Design L動u 箪 khi 達 th畛c hi畛n 叩nh x畉 trong project s畉 xu畉t hi畛n file app.config. Trong file ny ch畛a chu畛i connectionstring. Khi em 畛ng d畛ng qua m叩y kh叩c ch畉y ta ch畛 c畉n ch畛nh s畛a gi叩 tr畛 chu畛i connectionstring trong file ny. . -5- 息HCMUS
  • 6. LTUDQL 2 Kh畛i t畉o 畛i t動畛ng CSDL 達 叩nh x畉 1.Su dung gia tri chuoi connectionstring trong file app.config Dim db As New TruongHocDataContext() 2.Khong su dung gia tri chuoi connectionstring trong file app.config Dim cnStr As String cnStr = .. Dim db As New TruongHocDataContext(cnStr) . -6- 息HCMUS
  • 7. LTUDQL 2 Truy v畉n d畛 li畛u kh担ng i畛u ki畛n Public Function LayDanhSachKhachHang() As List(Of Customer) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select c Return query.ToList() End Function . -7- 息HCMUS
  • 8. LTUDQL 2 Truy v畉n d畛 li畛u c坦 i畛u ki畛n Public Function LayDanhSachKhachHangTheoThanhPho _ (ByVal tp As String) As List(Of Customer) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Where c.City = tp Select c Return query.ToList() End Function . -8- 息HCMUS
  • 9. LTUDQL 2 Truy v畉n d畛 li畛u Ki畛u tr畉 v畛 kh担ng x叩c 畛nh (Anonymous Type) Public Function LayDanhThongTinKhachHang() As IList Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select c.ContactName, c.Phone Return query.ToList() End Function . -9- 息HCMUS
  • 10. LTUDQL 2 Truy v畉n d畛 li畛u Ki畛u tr畉 v畛 x叩c 畛nh Public Function LayDanhThongTinKhachHang1() As List(Of ThongTinKhachHang) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select New ThongTinKhachHang With {.ContactName = c.ContactName, .Phone = c.Phone} Return query.ToList() End Function Ph畉i 畛nh ngh挑a l畛p ThongTinKhachHang c坦 thu畛c t鱈nh ContactName v Phone . - 10 - 息HCMUS
  • 11. LTUDQL 2 Truy v畉n d畛 li畛u v畛i distinct Public Function LayDanhSachThanhPho() As List(Of String) Dim db As New NorthwindDataContext() Dim query = From c In db.Customers Select c.City Distinct Return query.ToList() End Function . - 11 - 息HCMUS
  • 12. LTUDQL 2 Truy v畉n v畛i i畛u ki畛n AndAlso, OrElse Dim q = From p In db.Products Where p.UnitsInStock <= p.ReorderLevel AndAlso Not p.Discontinued Select p Dim q = From p In db.Products _ Where p.UnitPrice > 10.0# OrElse p.Discontinued Select p . - 12 - 息HCMUS
  • 13. LTUDQL 2 Truy v畉n d嘆ng 畉u ti棚n Dim shipper As Shipper shipper = db.Shippers.First() Dim cust = From c In db.Customers Where c.CustomerID = "BONAP" Take 1 Dim ord = (From o In db.Orders Where o.Freight > 10D Select o).First() . - 13 - 息HCMUS
  • 14. LTUDQL 2 Insert 1 d嘆ng d畛 li畛u Dim newCustomer = New Customer With {.CustomerID = "MCSFT", .CompanyName = "Microsoft", .ContactName = "John Doe", .ContactTitle = "Sales Manager", .Address = "1 Microsoft Way", .City = "Redmond", .Region = "WA", .PostalCode = "98052", .Country = "USA", .Phone = "(425) 555-1234", .Fax = Nothing} db.Customers.InsertOnSubmit(newCustomer) db.SubmitChanges() . - 14 - 息HCMUS
  • 15. LTUDQL 2 Insert 1 d嘆ng d畛 li畛u 1-many Dim newCategory = New Category With {.CategoryName = "Widgets", .Description = "Widgets are the customer-facing analogues " & "to sprockets and cogs."} Dim newProduct = New Product With {.ProductName = "Blue Widget",.UnitPrice = 34.56#,.Category = newCategory} db.Categories.InsertOnSubmit(newCategory) db.SubmitChanges() . - 15 - 息HCMUS
  • 16. LTUDQL 2 Insert 1 d嘆ng d畛 li畛u many - many Dim newEmployee = New Employee With {.FirstName = "Kira", .LastName = "Smith"} Dim newTerritory = New Territory With {.TerritoryID = "12345", .TerritoryDescription = "Anytown", .Region = db.Regions.First()} Dim newEmployeeTerritory = New EmployeeTerritory With{.Employee = newEmployee, .Territory = newTerritory} db.Employees.InsertOnSubmit(newEmployee) db.Territories.InsertOnSubmit(newTerritory) db.EmployeeTerritories.InsetOnSubmit(newEmployeeTerritory) db.SubmitChanges() . - 16 - 息HCMUS
  • 17. LTUDQL 2 Update 1 d嘆ng d畛 li畛u Dim cust As Customer cust = (From c In db.Customers Where c.CustomerID = "ALFKI" Select c).First() cust.ContactTitle = "Vice President" db.SubmitChanges() . - 17 - 息HCMUS
  • 18. LTUDQL 2 Update nhi畛u d嘆ng d畛 li畛u Dim query = From p In db.Products _ Where CInt(p.CategoryID.Value) = 1 Select p Dim lst As List (of Product) lst = query.ToList() For Each item As Product In lst item.UnitPrice += 1.0 Next db.SubmitChanges() . - 18 - 息HCMUS
  • 19. LTUDQL 2 Delete m畛t d嘆ng d畛 li畛u Dim order As Order_Detail order = (From c In db.Order_Details _ Where c.OrderID = 10255 AndAlso c.ProductID = 36 Select c).First() db.Order_Details.DeleteOnSubmit(order) db.SubmitChanges() . - 19 - 息HCMUS
  • 20. LTUDQL 2 Delete nhi畛u d嘆ng d畛 li畛u Dim orderDetails = _ From o In db.Order_Details _ Where o.Order.CustomerID = "WARTH" AndAlso o.Order.EmployeeID = 3 Select o Dim order = _ (From o In db.Orders _ Where o.CustomerID = "WARTH" AndAlso o.EmployeeID = 3 _ Select o).First() For Each od As Order_Detail In orderDetails db.Order_Details.DeleteOnSubmit(od) Next db.Orders.DeleteOnSubmit(order) db.SubmitChanges() . - 20 - 息HCMUS
  • 21. LTUDQL 2 D湛ng c叩c stored procedure 'Retrieve products based on adhoc query Dim products As IEnumerable(Of Product) products = From p In db.Products Where p.CategoryID = 1 Select p 'Retrieve products instead using a SPROC method products = db.GetProductsByCategory(1) 'iterate over result For Each item As Product In products '.... Next . - 21 - 息HCMUS
  • 22. LTUDQL 2 Ph但n trang truy v畉n k畉t qu畉 Public Function LaySanPham(ByVal startRow As Integer) As IEnumerable(Of Product) Dim db As New NorthwindDataContext() 'Retrieve products based on adhoc query Dim products As IEnumerable(Of Product) products = From p In db.Products Where p.CategoryID = 1 Select p Return products.Skip(startRow).Take(10) End Function . - 22 - 息HCMUS
  • 23. LTUDQL 2 K畉t b畉ng (join) Public Function TimKiemHocSinhTheoTenLop(ByVal tenLop As String) As List (Of HocSinh) Dim db As New TruongHocDataContext() Dim query = From hs In db.HocSinhs Join lh In db.LopHocs On hs.MaLop Equals lh.Ma Where lh.Ten = tenLop Select hs Return query.ToList() End Function . - 23 - 息HCMUS
  • 24. LTUDQL 2 Tham kh畉o th棚m http://msdn.microsoft.com/en-us/vbasic/bb688085 Project SampleQueries (LinQToSQLSamples.vb) . - 24 - 息HCMUS
  • 25. LTUDQL 2 C但u h畛i? . - 25 - 息HCMUS