« Home « Kết quả tìm kiếm

Tai Lieu Nghien Cuu Entity Framework 5.0 - NguyenMinhDao - 2015


Tóm tắt Xem thử

- 1 CHƯƠNG 1: .NET FRAMEWORK 4.5 1.1 T ổ ng quan 1.1.1 Gi ớ i thi ệ u .NET Framework là m ộ t công ngh ệ h ỗ tr ợ vi ệ c xây d ự ng và ch ạ y các th ế h ệ ti ế p theo ứ ng d ụ ng và d ị ch v ụ web XML.
- .NET Framework.
- Xây d ự ng t ấ t c ả các giao ti ế p d ự a trên tiêu chu ẩ n công nghi ệp để ch ắ c ch ắ n r ằ ng mã d ự a trên .NET Framework có th ể tích h ợ p v ớ i b ấ t kì mã nào.
- .NET Framework bao g ồ m b ộ th ự c thi ngôn ng ữ chung (Common Languge Runtime - CLR) và l ớp thư việ n .NET Framework (FCL).
- CLR là n ề n t ả ng c ủ a .NET Framework .
- B ạ n có th ể nghĩ runtime như là t ác nhân qu ả n lý mã t ạ i th ờ i gian th ự c hi ệ n, cung c ấ p các ứ ng d ụ ng c ố t l ỗi như quả n lý b ộ nh ớ , qu ả n lý lu ồ ng và remoting, xác nh ậ n mã ngu ồ n an toàn và các hình th ứ c khác c ủ a vi ệ c chính xác mã ngu ồ n.
- Thư việ n là m ộ t b ộ sưu t ậ p toàn di ện, hướng đối tượ ng mà b ạ n có th ể tái s ử d ụng để phát tri ể n các ứ ng d ụ ng khác nhau, t ừ các ứ ng d ụ ng dòng l ệ nh ho ặ c giao di ện đồ h ọa (GUI) đế n các ứ ng d ụ ng .
- Hình 1.1 Ki ế n trúc .NET Framework .NET Framework.
- .NET Framework không ch ỉ cung c ấ p m ộ t s ố host runtime, tuy nhiên v ẫ n h ỗ tr ợ s ự phát tri ể n các host runtime t ừ bên th ứ ba.
- Ví d ụ như các host ASP.NET runtime đả m b ả o s ự ổn định, môi trườ ng máy ch ủ cho các mã qu ả n lý.
- ASP.NET làm vi ệ c tr ự c ti ế p theo th ờ i gian th ực để ph ụ c v ụ cho ứ ng d ụ ng ASP.NET và d ị ch v ụ web XML.
- Điều này có nghĩa rằ ng m ộ t thành ph ầ n qu ả n lý có th ể ho ặ c không th ể th ự c hi ệ n ho ạt đồ ng truy c ậ p t ậ p tin, ho ạt độ ng truy c ập đăng ký hoặ c ch ức năng nhạ y c ả m khác, ngay c ả khi nó đượ c dùng trong ứ ng d ụ ng ho ạt động tương t ự .
- 4 Runtime cũng th ự c thi mã m ạ nh m ẽ b ằ ng cách th ự c hi ện cơ sở h ạ t ầ ng ch ặ t ch ẽ và xác nh ậ n mã ngu ồ n g ọi là common type system (CTS).
- Qu ả n lý b ộ nh ớ t ự độ ng x ử lý 2 l ỗ i ứ ng d ụ ng ph ổ bi ế n, rò r ỉ b ộ nh ớ và tham chi ế u b ộ nh ớ không h ợ p l ệ .
- M ụ c tiêu c ủ a trình biên d ị ch ngôn ng ữ c ủa .NET Framework là làm cho các tính năng s ẵ n có c ủ a .NET Framework t ồ n t ại mã đượ c vi ế t trong ngôn ng ữ , giúp gi ả m b ớ t quá trình chuy ển đổ i cho các ứ ng d ụ ng hi ệ n có.
- Cơ sở h ạ t ầ ng này cho phép b ạ n dùng mã qu ản lý để vi ế t business logic c ủ a b ạ n, trong khi v ẫ n tr ả i nghi ệ m hi ệ u su ất vượ t tr ộ i c ủ a ngành công nghi ệ p máy ch ủ doanh nghi ệ p h ỗ tr ợ.
- 5 1.1.3 .NET Framework Class Library .NET Framework class library là m ộ t b ộ sưu tậ p các lo ạ i có th ể s ử d ụ ng nhi ề u l ần đượ c tích h ợp vào CLR.
- Điề u này không ch ỉ làm cho .NET Framework d ễ s ử d ụ ng, mà còn gi ả m th ờ i gian h ọc tính năng mớ i c ủ a .NET Framework.
- Ngoài ra, các thành ph ầ n c ủ a bên th ứ ba có th ể tích h ợ p li ề n m ạ ch v ớ i các class trong .NET Framework.
- Ví d ụ , b ộ sưu tậ p các Class .NET Framework th ự c thi m ộ t giao di ệ n mà b ạ n có th ể s ử d ụng để phát tri ể n b ộ sưu tậ p class do b ạ n s ở h ữ u.
- B ộ sưu tậ p class c ủ a b ạ n s ẽ đượ c pha tr ộ n hoàn toàn v ớ i các class trong .NET Framework.
- B ạ n mong ch ờ l ớp thư viện hướng đối tượ ng, các lo ạ i .NET Framework cho phép b ạ n th ự c hi ệ n m ộ t lo ạ t các nhi ệ m v ụ l ậ p trình ph ổ bi ế n, bao g ồ m các công vi ệc như qu ả n lý chu ỗ i, thu th ậ p d ữ li ệ u, k ế t n ối cơ sở d ữ li ệ u và truy c ậ p t ậ p tin.
- Ví d ụ b ạ n có th ể s ử d ụng .NET Framework để phát tri ể n các lo ạ i ứ ng d ụ ng và d ị ch v ụ sau đây.
- ASP.NET applications.
- Ứ ng d ụng định hướ ng ứ ng d ụ ng dùng Windows Communication Foundation (WCF.
- Ứ ng d ụ ng cho phép làm vi ệ c theo lu ồ ng (workflow) dùng Windows Workflow Foundation (WF).
- 1.2 L ị ch s ử phát tri ể n 1.2.1 .NET Framework 1.0 Đây là phiên bản đầ u tiên c ủa .NET Framework , nó được phát hành vào năm 2002 cho các h ệ điề u hành Windows 98, NT 4.0, 2000 và XP.
- 1.2.2 .NET Framework 1.1 Phiên b ả n nâng c ấp đầu tiên đượ c phát hành vào 4/2003.
- mobile ASP.NET (trước đây chỉ là ph ầ n m ở r ộ ng tùy ch ọ n.
- Thay đổ i v ề ki ế n trúc an ninh – s ử d ự ng sandbox khi th ự c thi ứ ng d ụ ng t ừ internet.
- ODBX và cơ sở d ữ li ệ u Oracle.
- 1.2.3 .NET Framework 2.0 K ể t ừ phiên b ả n này, .NET Framework h ỗ tr ợ.
- bổ sung s ự h ỗ tr ợ cho ASP.NET.
- .NET Microsoft Framework – m ộ t phiên b ả n .NET Framework có quan h ệ v ớ i Smart Personal Objects Technology.
- 1.2.4 .NET Framework 3.0 Đây không phả i là m ộ t phiên b ả n m ớ i hoàn toàn, th ự c t ế ch ỉ là b ả n nâng c ấ p c ủ a .NET 2.0.
- Phiên b ả n 3.0 này còn có tên g ọ i khác là WinFX, nó bao g ồ m nhi ề u s ự thay đổ i nh ằ m h ỗ tr ợ vi ệ c phát tri ể n và chuy ển đổ i (porting) các ứ ng d ụ ng trên Windows Vista.
- Tuy nhiên, không có s ự xu ấ t hi ệ n c ủ a .NET Compact Framework 3.0 trong l ầ n phát hành này.
- Ngoài ra Silverlight (hay WPF/E) m ộ t phiên b ả n nhánh .NET Framework h ỗ tr ợ các ứ ng d ụ ng trên n ền web, đượ c Microsoft t ạo ra để c ạ nh tranh v ớ i Flash.
- Có th ể minh h ọ a .NET 3.0 b ằ ng m ộ t công th ức đơn giả n: .NET 3.0 = .NET 2.0 + WPF + WCF + WF + WCS 1.2.5 .NET Framework 3.5 Đượ c phát hành vào 11/2007, phiên b ả n này s ử d ựng CLR 2.0.
- Đây có thể đượ c xem là tương đương vớ i phiên b ả n .NET Framework 2.0 SP1 và .NET Framework 3.0 SP1 c ộ ng l ạ i.
- .NET Compact Framework 3.5 được ra đờ i cùng v ớ i phiên b ả n .NET Framework này.
- Các tính năng mớ i cho ngôn ng ữ C# 3.0 và VB.NET 9.0  H ỗ tr ợ Expression Trê và Lamda  Các phương thứ c m ở r ộ ng (Extension methods.
- LINQ  Phân trang (paging) cho ADO.NET  API cho nh ậ p xu ấ t m ạng không đồ ng b ộ (asynchronous network I/O.
- So sánh chu ỗi delegate để h ệ điề u hành th ự c hi ệ n Unicode 6.0, khi .NET Framework dùng trên Windows 8.
- Khi ch ạ y trên các n ề n t ả ng khác, .NET Framework so sánh chu ỗ i d ữ li ệ u c ủ a riêng nó, cho phép th ự c thi Unicode 5.x.
- 11 Trong .NET Framework, tính năng mới không đồ ng b ộ đượ c thêm vào ngôn ng ữ C# và Visual Basic.
- 1.3.4 Tools Resource File Generator (Resgen.exe) cho phép b ạ n t ạ o m ộ t t ậ p tin .resw dùng trong các Windows Store app t ừ m ộ t file.resources nhúng trong .NET Framework assembly.
- Managed Profile Guided Optimization (Mpgo.exe) cho phép c ả i thi ệ n th ờ i gian kh ởi độ ng ứ ng d ụ ng, s ử d ụ ng b ộ nh ớ.
- (kích thướ c t ậ p làm vi ệc) và thông lượ ng b ằ ng cách t ối ưu native image assemblies.
- 1.3.5 Parallel Computing .NET Framework cung c ấ p m ộ t s ố tính năng mớ i và c ả i ti ế n cho parallel computing.
- 1.3.6 Web ASP.NET 4.5 thêm vào mô hình binding cho Web Forms, h ỗ tr ợ WebSocket, x ử lý kh ông đồ ng b ộ , c ả i ti ế n hi ệ u su ấ t và m ộ t s ố tính năng khác.
- 1.3.7 Networking .NET Framework 4.5 cung c ấ p m ộ t giao di ệ n l ậ p trình m ớ i cho các ứ ng d ụ ng HTTP.
- Ngoài ra, .NET Framework 4.5 bao g ồ m các c ả i ti ế n m ạ ng.
- 1.3.8 Windows Presentation Foundation (WPF) Trong .NET Framework 4.5, Windows Presentation Foundation (WPF) có m ộ t s ố thay đổ i và c ả i ti ế n.
- 1.3.9 Windows Communication Foundation (WCF) Trong .NET Framework 4.5, các tính năng sau được thêm vào làm nó đơn giả n để vi ế t và duy trì các ứ ng d ụ ng WCF.
- 21 2.1.4.2 Store schema definition language (SSDL) SSDL là m ộ t ngôn ng ữ d ự a trên XML mô t ả các mô hình lưu trữ c ủ a m ộ t ứ ng d ụ ng Entity Framework.
- B ạ n có th ể t ạ o m ộ t data model r ỗ ng b ằ ng công c ụ Entity Data Model Designer , khi đó object layer cũng tự động được sinh ra.
- 2.3.1.2 S ử d ụ ng Model – first  Gi ả s ử t ạ o m ộ t Project có tên là ModelFirst t ạo ra mô hình cơ sở d ữ li ệ u là QuanLyHocVien .
- Ch ọ n ADO.NET Entity Data Model và đặ t tên cho mô hình mu ố n t ạ o ra trong trườ ng Name: B4.
- 38 c ứ m ộ t quan h ệ nào đố i v ới 1 cơ sở d ữ li ệ u.
- B ạ n có th ể th ấy đượ c các câu l ệnh SQL dùng để làm cho mô hình c ủ a b ạn thành cơ sở d ữ li ệ u th ậ t và các b ả ng liên k ế t B19.
- T ấ t c ả nh ữ ng gì Generate Database Wizard làm là t ạ o ra l ệ nh yêu c ầ u t ạo mô hình cơ sở d ữ li ệ u ch ức năng củ a b ạ n.
- Visual Studio k ế t n ố i t ớ i h ệ qu ả n tr ị cơ sở d ữ li ệ u và th ự c thi l ệ nh SQL mà nó t ạo ra.
- T ạ o m ột container lưu trữ các thông tin v ề cơ sở d ữ li ệ u: QuanLyHocVienModelContainer db = new QuanLyHocVienModelContainer.
- Thêm b ả n ghi vào cơ sở d ữ li ệ u: HocVien h = new HocVien.
- 40  Lưu bản ghi vào cơ sở d ữ li ệ u: db.HocVien.Add(h).
- Đượ c s ử d ụ ng ứ ng d ụng đã có sẵn cơ sở d ữ li ệ u.
- Đây là cách tiế p c ậ n ph ổ bi ế n vì th ự c hi ện đơn giản, nhanh chóng nhưng đòi hỏ i c ần có cơ sở d ữ li ệu trướ c.
- 2.3.2 S ử d ụ ng Database – frist - Gi ả s ử t ạ o m ộ t Project có tên là DatabaseFirst k ế t n ố i t ớ i m ột cơ sở d ữ li ệ u QuanLyHocVien mà ta đã tạ o t ừ project ModelFirst .
- Ch ọ n ADO.NET Entity Data Model .
- Ch ọn cơ sở d ữ li ệ u mu ố n k ế t n ố i B6.
- Ch ọ n các thành ph ầ n c ủa cơ sở d ữ li ệ u mu ố n s ử d ụ ng trong ứ ng d ụ ng.
- Drill down vào đối tượ ng Tables b ằng các click vào các mũi tên cạ nh m ỗ i m ục để hi ệ n ra các b ảng có trong cơ sở d ữ li ệ u và l ấ y ra nh ữ ng b ả ng c ầ n dùng.
- Sa u đó, ta sẽ th ấy mô hình đượ c t ạ o ra t ừ cơ sở d ữ li ệ u.
- Ch ọ n Buid | Solution để lưu lạ i nh ững thay đổ i b ạ n t ạo ra và sau đó biên d ị ch ứ ng d ụ ng.
- T ạo đối tượ ng ch ứ a t ậ p h ợp các đối tượng Entity được định nghĩa trong mô hình cơ sở d ữ li ệ u: QuanLyHocVienEntities db = new QuanLyHocVienEntities.
- L ậ p trình viên s ẽ vi ế t các ra các l ớ p mô t ả các đối tượ ng th ự c th ể tương ứ ng v ớ i các b ảng trong cơ sở d ữ li ệ u.
- EF s ẽ t ự độ ng t ạo ra cơ sở d ữ li ệ u theo nh ữ ng gì các l ớp định nghĩa.
- Để h ỗ tr ợ có vi ệ c ki ể m tra tính h ợ p l ệ c ủ a d ữ li ệ u trong các l ớ p t ự định nghĩa, .NET Framework cung c ấ p các DataAnnotation và Fluent API.
- 50  Không có tham s ố : N ế u không có tham s ố , nó s ẽ t ạo ra cơ sở d ữ li ệ u trong local SQLEXPRESS c ủ a b ạ n v ớ i tên là.
- Tên : n ế u truy ề n tham s ố là m ột “Name” thì cơ sở d ữ li ệ u b ạ n t ạ o ra s ẽ có tên là tên tham s ố b ạ n truy ề n vào public class QuanLyHocVienDBContext : DbContext { public QuanLyHocVienDBContext.
- Tên chu ỗ i k ế t n ố i – ConnectionStringName : n ế u b ạ n truy ề n m ộ t chu ỗ i k ế t n ối trong app.config hay web.config thì cơ sở d ữ li ệ u s ẽ đượ c t ạ o ra theo chu ỗ i k ế t n ố i public class QuanLyHocVienDBContext : DbContext { public QuanLyHocVienDBContext.
- App.config: V ớ i chu ỗ i k ế t n ối này, cơ sở d ữ li ệ u s ẽ được lưu vào server .
- Trong th ẻ connectionString ph ả i luôn có providerName="System.Data.SqlClient" 2.3.3.4 Các chi ến lượ c kh ở i t ạo cơ sở d ữ li ệ u trong Code – first Cơ sở d ữ li ệ u s ẽ đượ c t ạ o m ớ i trong l ầ n ch ạy đầu tiên, nhưng đế n l ậ n th ứ hai tr ở.
- đi thì như thế nào? Nó s ẽ t ạ o m ớ i d ữ li ệ u b ấ t c ứ khi nào ứ ng d ụng đượ c kh ởi độ ng? Làm th ế nào thay đổi cơ sở d ữ li ệ u khi b ạn thay đổ i mô hình mi ền.
- Để x ử lý các tình hu ố ng, b ạ n ph ả i s ử d ụ ng m ộ t trong nh ữ ng chi ến lượ c kh ở i t ạo cơ sở d ữ li ệ u.
- CreateDatabaseIfNotExists : n ếu cơ sở d ữ li ệu chưa tồ n t ạ i, b ộ kh ở i t ạ o này s ẽ t ạo ra cơ sở d ữ li ệ u m ớ i cho b ạ n.
- N ếu đã cơ sở d ữ li ệu đã đượ c t ạ o trước đ ó, thì ta s ẽ không t ạ o n ữ a mà s ẽ thao tác trên cơ sở d ữ li ệ u có s ẵ n.
- DropCreateDatabaseIfModelChanges : Khi có s ự thay đổ i v ề các entity class, b ộ kh ở i t ạ o này s ẽ xóa cơ sở d ữ li ệu cũ và tạ o l ạ i m ột cơ sở d ữ li ệ u m ớ i theo s ự thay đổ i các l ớ p th ự c th ể đó.
- DropCreateDatabaseAlways : Cơ sở d ữ li ệu cũ sẽ đượ c xóa và t ạo cơ sở d ữ li ệ u m ớ i m ố i khi kh ởi độ ng ứ ng d ụ ng mà không quan tâm t ớ i mô hình c ủ a b ạ n có b ị thay đổ i hay không.
- Custom DB Initializer : Cho phép b ạ n kh ở i t ạo tùy theo điề u ch ỉ nh riêng c ủ a mình n ếu các cách trên không đáp ứ ng yêu c ầ u c ủ a b ạ n ho ặ c b ạ n mu ố n làm m ột cái gì đó khác khi nó khở i t ạo cơ sở d ữ li ệ u.
- Các d ữ li ệu đượ c kh ở i t ạo đầu tiên khi cơ sở d ữ li ệ u c ủ a b ạn đượ c t ạ o l ạ i s ẽ đượ c định nghĩa trong lớ p Seed.
- //Đoạ n code thêm các d ữ li ệ u khi t ạo cơ sở d ữ li ệ u.
- Để t ạo ra cơ sở d ữ li ệ u theo s ự thay đổi đó, các bộ kh ở i t ạ o s ẽ xóa cơ sở d ữ li ệu cũ (nế u b ạ n v ẫ n gi ữ tên cơ sở.
- Điều này có nghĩa là bạ n s ẽ có m ộ t cơ sở d ữ li ệ u hoàn toàn m ớ i và r ỗ ng ho ặ c có d ữ li ệ u do l ớ p Seed b ạ n override l ạ i.
- N ế u b ạ n v ẫn để tên cơ sở d ữ li ệu cũ khi thay đổ i thì nh ữ ng d ữ li ệ u b ạn đã thêm hay s ử a ở.
- cơ sở d ữ li ệu cũ sẽ hoàn toàn b ị m ất.
- Để kh ắ c ph ục điề u này EF cung c ấ p cho b ạ n b ộ kh ở i t ạ o Migration, nó cho phép c ậ p nh ậ t l ại thay đổ i c ủa cơ sở d ữ li ệ u mà không c ầ n t ạ o m ớ i l ạ i nó.
- C ậ p nh ật cơ sở d ữ li ệ u b ằ ng cách gõ l ệ nh: Update-database  Ví d ụ .
- Việc tách mô hình ra thành nhiều sơ đồ không làm ảnh hưởng tới cơ sở dữ liệu

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt