YOMEDIA
Bài giảng LINQ to SQL - Lương Trần Hy Hiến
Chia sẻ: Lavie Lavie
| Ngày:
| Loại File: PDF
| Số trang:36
110
lượt xem
14
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài giảng LINQ to SQL của Lương Trần Hy Hiến trình bày về phương thức mở rộng; biểu thức Lambda; khởi tạo đối tượng; C# 3.0 Language Extensions; Query Comprehensions; Linq to SQL; loại CSDL LINQ to SQL hỗ trợ; thực hiện ánh xạ ORM; intro demo.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng LINQ to SQL - Lương Trần Hy Hiến
- LINQ TO SQL
Lương Trần Hy Hiến - hyhien@gmail.com
- Phương thức mở rộng
- Biểu thức Lambda
(input parameters) => {executioncode}
“goes into”
- Khởi tạo đối tượng
HangHoa hh = new HangHoa();
HangHoa hh = new HangHoa(1, “Bánh đậu”);
HangHoa hh = new HangHoa{
MaHH = 1, TenHH = “Bánh đậu”
};
- C# 3.0 Language Extensions
var hanghoa =
from c in dshanghoa
where c.MaLoai == "WA"
select new { c.TenHH, c.DonGia };
var hanghoa =
dshanghoa
.Where(c => c.MaLoai == "WA")
.Select(c => new { c.TenHH, c.DonGia });
- Danh sách các từ khóa
Restriction Where
Projection Select
Ordering OrderBy, OrderByDescending, ThenBy, ThenByDecending
Grouping GroupBy
Quantifiers Any, All, Contains
Partitioning Take, Skip, TakeWhile, SkipWhile
Sets Distinct, Union, Concat, Intersect, Except
Elements First, FirstOrDefault, Last, Single, ElementAt
Aggregation Count, Sum, Min, Max, Average
Conversion ToArray, ToList, ToDictionary, ToLookup
- Query Comprehensions
Project Select
Filter Where
Test Any(), All()
Join [ [ Left | Right ] Outer ] Join On
Group Group By
Aggregate Count(), Sum(), Min(), Max(), Avg()
Partition Top
Set Distinct, Union, Intersect, Except
Order Order By
- Các loại
Linq to Object
Linq to SQL
Linq to XML
- Linq to SQL
9
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ễ
dàng 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
- LINQ to SQL Mapping
Database DataContext
Table Class
View Class
Column Field / Property
Relationship Field / Property
Stored Procedure Method
- Các bước thao tác
Kết nối đến loại CSDL mà LINQ to SQL hỗ trợ
Thực hiện ánh xạ ORM (tạo file
.dbml). Ví dụ: TruongHoc.dbml
Khởi tạo đối tượng CSDL đã ánh xạ (đối tượng
). Ví dụ:
TruongHocDataContext
Sử dụng đối tượng CSDL trên để thao tác
CSDL
- 11 -
- 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)
- 12 -
- Thực hiện ánh xạ ORM
Tạo file TenCSDL.dbml
Kéo tất cả các bảng vào cửa sổ Design
Có thể kéo các View, Stored Procedure,
Function vào cửa sổ Design
Lưu ý khi đã thực hiện ánh xạ trong project sẽ
xuất hiện file Web.config. Trong file này 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 này.
- 13 -
- Accessing Data Today
SqlConnection c = new SqlConnection(…);
c.Open();
SqlCommand cmd = new SqlCommand(
@"SELECT c.TenHH, c.DonGia
FROM HangHoa c
WHERE c.MaLoai = @p0");
cmd.Parameters.AddWithValue("@p0", 1);
DataReader dr = c.Execute(cmd);
while (dr.Read()) {
string ten_hhh = dr.GetString(0);
string gia = dr.GetString(1);
}
dr.Close();
- Accessing With LINQ to SQL
public class Hoa { … }
public class QLBanHang: DataContext
{
public Table HangHoas;
…
}
QLBanHang db = new QLBanHang(…);
var dshh =
from c in db.HangHoas
where c.MaLoai == 1
select new { c.TenHH, c.DonGia };
- INTRO DEMO
- Application Architecture
With LINQ to SQL
from c in db.HangHoas Application db.HangHoas.InsertOnSubmit(c1);
where c.MaLoai == 1 c2.MaLoai = 2;
select c.TenHH db.HangHoas.DeleteOnSubmit(c3);
LINQ Query Objects SubmitChanges()
LINQ to SQL
SQL Query Rows DML or SProcs
SELECT TenHH INSERT INTO HangHoa…
FROM HangHoa UPDATE HangHoa …
WHERE MaLoai = 1 DELETE FROM HangHoa …
- Lưu ý
var query = from c in db.HangHoas where c.MaLoai == 1 select c.TenHH;
var query = db.HangHoas.Where(c => c.MaLoai == 1).Select(c => c.TenHH);
- LinQ thực thi như thế nào?
from c in dsHangHoa
where c.MaLoai == “NO"
select new { c..TenHH, c.DonGia };
dsHangHoa
.Where(c => c.MaLoai == “NO")
.Select(c => new { c.TenHH, c.DonGia });
- Examples
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...