Slide 10 - Linq to SQL

Embed Size (px)

Citation preview

Ngi thc hin: Nguyn Vn Quyt

Gii thiu tng quan v LINQ v LINQ to SQL M hnh d liu LINQ to SQL Thao tc vi c s d liu dng LINQ to SQL LINQ to SQL v m hnh ba lp trong lp trnh

Tng kt

Gii thiu tng quan LINQ v LINQ to SQL 1.1. Gii thiu v LINQ LINQ chnh thc c a vo phin bn VS 2008, to ra mt bc ngot ln v mt ngn ng cho ngnh cng ngh phn mm

Bn cht ca n chnh l thng nht s khc bit gia hai m hnh : i tng v D liu Cng ngh h tr ng sau LINQ nh ORM (Object Relational Mapping) lm cho vic lp trnh tr nn n gin hn, gn gng hn

Gii thiu tng quan LINQ v LINQ to SQL 1.2. LINQ l g? LINQ Language Integrated Query: l mt tp hp cc phn m rng ca .NET Framework, bao gm ngn ng tch hp truy vn, thip lp v chuyn i hot ng.

LINQ c m rng trong C# v VB 9.0 vi c php ngn ng bn a cho cc truy vn v cung cp cc th vin lp tn dng nhng kh nng thun li ca n.

Gii thiu tng quan LINQ v LINQ to SQL 1.3. Kin trc ca LINQC# 3.0 VB 9.0 Others

.NET Language-Integrated Query (LINQ)

LINQ enabled ADO.NETLINQ to Objects LINQ to Entities LINQ to SQL LINQ to Dataset LINQ to XML

Objects

Relational Data

XML

Gii thiu tng quan v LINQ to SQL 1.4. LINQ to SQL l g? LINQ to SQL l mt phin bn hin thc ha ca ORM (object relational mapping) c bn trong .NET

Framework bn Orcas (nay l .NET 3.5). LINQ to SQL cho php ta m hnh ha mt c s d liu dng cc lp .NET. Sau ta c th truy vn c s d liu (CSDL) dng LINQ, cng nh cp nht/thm/xa d

liu t .

Gii thiu tng quan v LINQ to SQL 1.4. LINQ to SQL l g? LINQ to SQL h tr y store procedurce, function, view v transaction. N cung cp c ch cho lp trnh vin c th d dng kim tra tnh hp l ca d liu.

M hnh ho CSDL dng LINQ to SQL2.1. To tp

M hnh ho CSDL dng LINQ to SQL2.2. Lp DataContext Lu tr cc lp .NET biu din cc thc th v quan h bn trong CSDL m chng ta va m hnh ha. Mi mt file LINQ to SQL chng ta thm vo solution, mt lp DataContext s c to ra, n s c dng khi cn truy vn hay cp nht li cc thay i. Lp DataContext c to s c cc thuc tnh biu din mi bng c m hnh ha t CSDL, cng nh cc phng thc cho mi SP m chng ta thm vo.

M hnh ho CSDL dng LINQ to SQL2.2. To lp m hnh d liu

M hnh ho CSDL dng LINQ to SQLLp m hnh d liu

Thao tc vi CSDL s dng LINQ to SQL 3.1. Cu trc chungTt c cc biu thc LINQ lm vic theo ba thao tc. 1. Xc nh ngun d liu. 2. To cc truy vn. 3. Thc hin cc truy vn.

Thao tc vi CSDL s dng LINQ to SQL 3.2. C php to truy vn from itemName in srcExpr join itemName in srcExpr on keyExpr equals keyExpr (into itemName)? where predExpr group selExpr by keyExpr into itemName query-body orderby (keyExpr (ascending | descending)?)* select selExpr

Thao tc vi CSDL s dng LINQ to SQLfrom c in db.Customers where c.City == "London" select c.CompanyName;

Application

db.Customers.InsertOnSubmit(c1); c2.City = Seattle; db.Customers.DeleteOnSubmit(c3);

LINQ Query

Objects

SubmitChanges()

LINQ to SQL

SQL QuerySELECT CompanyName FROM Cust WHERE City = 'London'

Rows

DML or Stored ProceduresINSERT INTO Customers UPDATE Customers DELETE FROM Customers

SQL Server

Thao tc vi CSDL s dng LINQ to SQL 4.3. Truy vn ly d liuLINQ var query1 = from c in db.Customers where c.City == "London" select c;var query2 = from c in db.Customers where c.City == "London" select new { c.CompanyName, c.Phone }; var query3 = db.Customers.Where(c => c.City == "London); SQL

SELECT * FROM Customers WHERE City = 'London'

Thao tc vi CSDL s dng LINQ to SQL 4.4. Thm mi bn ghi vo CSDLLINQCustomer c1 = new Customer(); c1.CustomerID = "ABCD"; c1.CompanyName = "FPT"; c1.Country = "Viet Nam"; c1.City = "Ha Noi"; c1.Phone = "(04)38184429; db.Customers.InsertOnSubmit(c1); db.SubmitChanges();

SQL INSERT INTO Customers(CustomerID, CompanyName, Country, City, Phone) VALUES(ABCD,FPT,Viet Nam,Ha Noi,(04)38184429)

Thao tc vi CSDL s dng LINQ to SQL 4.5. Cp nht mi bn ghi vo CSDLLINQCustomer cust = db.Customers.Single(c => c.CustomerID == "ABCD"); cust.CompanyName = FSC"; var custs = db.Customers.Where(c => c.Country == Viet Nam"); foreach (var c in custs) c.City = Ha Noi"; db.SubmitChanges();

SQLUPDATE Customers SET CompanyName = FSC' WHERE CustomerID='ABCD' UPDATE Customers SET City = 'Ha Noi' WHERE Country = 'Viet Nam'

Thao tc vi CSDL s dng LINQ to SQL 4.6. Xo bn ghi trong CSDLLINQCustomer cust = db.Customers.Single(c => c.CustomerID == "ABCD"); db.Customers.DeleteOnSubmit(cust); var custs = db.Customers.Where(c => c.City == "Ha Noi"); db.Customers.DeleteAllOnSubmit(custs); db.SubmitChanges();

SQLDELETE Customers WHERE CustomerID == ABCDDELETE Customers WHERE City== Ha Noi

Thao tc vi CSDL s dng LINQ to SQL 4.7. Truy vn nng caoLINQvar result = from od in db.OrderDetails where od.Order.CustomerID == "ALFKI" group new { od.Product.ProductName, od.Quantity } by od.Product.ProductName into g select new { ProductName = g.Key, Total = g.Sum(o => o.Quantity) };

SQLSELECT ProductName, Total=SUM(Quantity) FROM Products P INNER JOIN OrderDetails OD ON P.ProductID = OD.ProductID INNER JOIN Orders O ON O.OrderID = OD.OrderID WHERE O.CustomerID = ALFKIGROUP BY ProductName

Thao tc vi CSDL s dng LINQ to SQL 4.8. Mt s phng thc hay s dng Select / SelectMany Where

Sum / Min / Max / Average / AggregateJoin / GroupJoin

GroupByTake / TakeWhile - Skip / SkipWhile OrderBy / ThenBy First / FirstOrDefault / Last / LastOrDefault/Single

LINQ to SQL v m hnh 3 lp trong lp trnh

Tng kt

Gii thiu tng quan v LINQ v LINQ to SQLTrnh by c im, cch to v s dng lp m hnh ho CSDL trong LINQ Cch thc lm vic vi CSDL nh truy vn, thm, xo, sa bn ghi. nh x LINQ v m hnh 3 lp trong lp trnh

dddddddddddddddddddddddd