Entity Framework là một khuôn khổ đối tượng Object Bảng đồ quan hệ Relational Mapping (ORM) cho phép các nhà phát triển dể dàng làm việc với dữ liệu quan hệ như là các đối tượng domainspecific, loại bỏ đi sự khó khăn trong việc truy cập dữ liệu trước đây. Bằng cách sử dụng Entity Framework, truy vấn LINQ, thì việc lấy và thao tác dữ liệu như các đối tượng trở nên mạnh mẽ hơn. Entity Framework ORM cung cấp các dịch vụ như change tracking, idenity resolution, lazay loading, và truy vấn dữ liệu tập trung vào business logic của ứng dụng.
BÁO CÁO THỰC TẬP CHUYÊN NGÀNH Đề tài: Tìm hiểu EF, ứng dụng xây dựng chương trình Quản lý khu trọ Lời nói đầu Một trong những yêu cầu cấp bách hiện nay là đưa CNTT vào công tác quản lý, nhằm làm giảm bớt sức lao động của con người, tiết kiệm thời gian, tăng độ chính xác, thu hẹp không gian lưu trữ, tránh thất thoát và đảm bảo tính an toàn của dữ liệu. Qua quá trình học tập tại nha trang em nhận thấy việc ứng dụng công nghệ thông tin đang ngày càng được thể hiện rõ nét từ việc sử dụng giấy tờ sổ sách trong công việc quản lý thì nay việc sử dụng các phần mềm ngày một rộng rãi, đặc biệt các lĩnh vực như quản lý nhà hàng, khách sạn, siêu thị Bên cạnh đó vẫn còn một số lĩnh vực chưa được áp dụng CNTT như quản lý khu trọ, quầy tạp hóa,…Việc quản lý hầu như làm trên giấy tờ, sổ sách, các công việc liên quan đến tính toán đều được thực hiện bằng tay, làm mất rất nhiều thời gian của người quản lý. Khu trọ XXX cũng đang gặp phải những khó khăn như vậy và giải pháp được lựa chọn ở đây là ứng dụng CNTT vào việc quản lý cho khu trọ này nhằm giảm bớt các khó khăn trong công việc mà người quản lý gặp phải. Để tránh việc mất mát, hư hỏng giấy tờ sổ sách, tất cả các thông tin được lưu trữ trong cơ sở dữ liệu và được quản lí trên máy tính. Việc đó làm cho độ an toàn của dữ liệu tăng lên, tốc độ tính toán nhanh hơn . Để truy vấn tới dữ liệu cách thông thường là sử dụng câu lệnh SQL, cách này đòi hỏi người phát triển phải bỏ ra nhiều thời gian cho việc lập trình. Ngày nay để tiết kiệm thời gian và công sức người ta dùng các công cụ ORM, được hiểu như là kỹ thuật ánh xạ từ mô hình đối tượng với các table trong cơ sở dữ liệu quan hệ. Trong đó các đối tượng ánh xạ với các bảng và quan hệ của table trong database sẽ được ánh xạ với sự ràng buộc liên quan trong đối tượng. Với ORM, bạn có thể thao tác truy cập, xử lý database một cách dễ dàng và nhanh chóng. Với những ưu điểm của công cụ ORM em chọn Entity Framework để phát triển ứng dụng quản lý khu trọ của mình. Chương 1: Tổng quan 1.1 Giới thiệu Khu trọ xxx do ông xxx làm chủ chuyên cho thuê chỗ ở với giá cả cạnh tranh, phục vụ sinh viên và những người đi làm xa quê có nhu cầu. Khu trọ gồm bốn tầng, tầng một có bốn phòng các tầng còn lại có năm phòng, mỗi phòng được phép ở tối đa 4 người. Hiện nay khu trọ đang áp dụng việc quản lý khách trọ trên giấy tờ sổ sách, tất cả mọi việc đều được làm thủ công. Vì vậy, việc hư hỏng, mất mát giấy tờ là không tránh khỏi, cứ mỗi lần tính tiền hóa đơn cho cả khu trọ ông phải bỏ ra rất nhiều thời gian tính toán bằng tay và đôi khi việc tính toán tiền hóa đơn bị sai sót làm mất đi uy tín của khu trọ. Mỗi khi muốn tìm thông tin về khách trọ hay thông tin về hóa đơn ông phải bỏ ra không ít thời gian để tìm kiếm trong sổ sách, việc này rất phiền phức và khó khăn khi ông không mang kính. 1.2 Hướng giải quyết Hiểu được sự vất vả của công việc mà ông phải trải qua, em nhận thấy giải pháp tốt nhất để giải quyết các khó khăn này là ứng dụng CNTT vào việc quản lý, cụ thể là xây dựng phần mềm quản lý khu trọ nhằm đáp ứng những yêu công việc mà ông phải làm trong quá trình quản lý, như lưu trữ thông tin trang thiết bị, thông tin khách trọ, thông tin phòng trọ, thông tin phiếu đăng ký. Tính toán và tạo hóa đơn tự động, tìm kiếm thông tin về khách trọ, thông tin hóa đơn, thông tin phòng trống chính xác và nhanh chóng. Cho phép in danh sách hóa đơn, danh sách khách trọ, danh sách phiếu đăng ký trong tháng và lịch sử điện nước theo phòng. Phân quyền chức năng hệ thống tránh các truy cập không được phép. Để xây dựng các chức năng đáp ứng các yêu cầu công việc trong khoảng thời gian giới hạn là tám tuần, công cụ Entity Framework được áp dụng và hướng tiếp cận mà em lựa chọn là Database First, cách này dể dàng, nhanh chóng vì CSDL đã được em thiết kế trong thời gian phân tích thiết kế hệ thống của khu trọ. Chương 2: Cơ sở lý thuyết 2.1 Phân tích thiết kế 2.1.1 phương pháp Merise - Ý tưởng cơ bản của phương pháp MERISE Mặt thứ nhất: Quan tâm đến chu kỳ sống của hệ thống. Một hệ thống thông tin luôn trải qua bốn giai đoạn: Thai nghén - Sinh sản - Quản trị - Chết. Thời gian sống này đối với hệ thống tổ chức lớn có thể kéo dài từ 10 - 15 năm. Mặt thứ hai: Đề cập đến chu kỳ nhận thức về hệ thông tin (còn được gọi là chu kỳ trừu tượng). Sự hiểu biết về hệ thống thông tin trải qua ba mức: Mức quan niệm, mức logic (tổ chức) và cuối cùng là mức vật lý. Mặt thứ ba: Mặt này có liên quan đến chu kỳ phát triển của hệ thống. Một hệ thống thông tin luôn trải qua 3 giai đoạn: Phân tích, thiết kế và thực hiện. - Nội dung của phương pháp MERISE Mức quan niệm: Là mức cảm nhận đầu tiên để xác định hệ thống thông tin, ở mức này cần trả lời câu hỏi: Hệ thống thông tin cần những yếu tố gì? Chức năng ra sao? Gồm những dữ liệu nào và qui tắc quản lý như thế nào? Và tại sao có những yếu tố này? Tại sao có những chức năng này? – Trả lời câu hỏi: What? Why? Mức tổ chức hay logic: Là mức tổng hợp các yếu tố đã nhận diện ở mức quan niệm. Trong mức này, cần phải trả lời được các câu hỏi: Ai làm? Làm ở đâu và làm khi nào? Who? Where? When? Mức vật lý: Là mức chi tiết. Về dữ liệu cần có các quan hệ cụ thể, có một ngôn ngữ lập trình cụ thể. Về xử lý cần có đầy đủ các đặc tả cho từng thủ tục chương trình, có sự tham khảo ngôn ngữ trong chương trình này. Mức này trả lời câu hỏi cuối cùng: Các công việc làm như thế nào? How? 2.1.2 Mô hình hình 3 lớp Khi làm việc với các ứng dụng, với những dự án nhỏ thì việc tạo một ứng dụng theo ý tưởng rất dễ dàng, tuy nhiên khi làm với những dự án lớn hơn, cần nhiều người cùng làm hơn thì việc lập trình trở nên phức tạp hơn, vậy nên để dễ dàng hơn trong việc quản lý các thành phần của hệ thống cũng như ảnh hưởng tới các thành phần khác khi ta thay đổi một thành phần, chúng ta thường nhóm các thành phần có cùng chức năng lại với nhau. Chính vì thế các mô hình lập trình được sinh ra, một trong những mô hình lập trình đó là mô hình 3 lớp (3 - Layer). Được cấu thành từ Presentation, Business Logic, và Data Access, Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi. - Presentation Layer Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì chúng ta có thể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này. - Business Logic Layer Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc của mình (ví dụ như sử dụng dịch vụ của các cổng thanh tóan trực tuyến như VeriSign, Paypal…). - Data Access Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của mình. 2.2 Các công cụ và ngôn ngữ lập trình 2.2.1 Bộ công cụ SQL Server 2012 Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (relational database management system - RDBMS) do Microsoft phát triển. SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ máy mạng tính hoạt động theo mô hình khách chủ cho phép đồng thời cùng lúc có nhiều người dùng truy xuất đến dữ liệu, quản lý việc truy nhập hợp lệ và các quyền hạn của từng người dùng trên mạng. SQL có nhiều phiên bản, trong khuôn khổ bài thực tập này em chọn phiên bản SQL Server 2012. SQL Server 2012 cho phép các tổ chức có thể chạy hầu hết các ứng dụng phức tạp của họ trên một nền tảng an toàn, tin cậy và có khả năng mở rộng, bên cạnh đó còn giảm được sự phức tạp trong việc quản lý cơ sở hạ tầng dữ liệu. SQL Server 2012 cung cấp một nền tảng tin cậy và an toàn bằng cách bảo đảm những thông tin có giá trị trong các ứng dụng đang tồn tại và nâng cao khả năng sẵn có của dữ liệu. SQL Server 2012 giới thiệu một cơ chế quản lý cách tân dựa trên chính sách, cơ chế này cho phép các chính sách có thể được định nghĩa quản trị tự động cho các thực thể máy chủ trên một hoặc nhiều máy chủ. Thêm vào đó, SQL Server 2012 cho phép thi hành truy vấn dự báo với một nền tảng tối ưu. Nền tảng lập trình dữ liệu toàn diện của Microsoft cho phép xây dựng các ứng dụng dữ liệu hướng đến PC, thiết bị di động, máy chủ web và máy chủ mạng công ty. SQL Server 2012 hỗ trợ xây dựng các ứng dụng dùng nhiều loại công nghệ kết nối có sẵn như ODBC, ADO/OLEDB và ADO.NET. Đặc biệt, SQL Server 2012 cùng với .NET Framework và Visual Studio Team Systems cho phép xây dựng những ứng dụng cơ sở dữ liệu kế tiếp mạnh mẽ. Hỗ trợ mới cho các hệ thống không kết nối thường xuyên cho phép xây dựng các ứng dụng mà người dùng có thể đem theo dữ liệu trên thiết bị và sau đó đồng bộ dữ liệu với máy chủ trung tâm. SQL Server 2012 cung cấp nền tảng kho dữ liệu toàn diện và có thể mở rộng, cho phép đưa dữ liệu vào kho dữ liệu nhanh hơn và có thể nâng cấp để quản lý lượng dữ liệu và người dùng ngày càng tăng, đồng thời cung cấp thông tin phân tích đến tất cả mọi người. 2.2.2 Bộ công cụ visual 2013 Visual Studio 2013 cho phép đội ngũ lập trình viên phát triển, phân phối và quản lý ứng dụng để khai thác các thiết bị và dịch vụ tiên tiến hiện nay. Visual Studio 2013 được bổ sung nhiều tính năng và chức năng nhằm nâng cao chất lượng và rút ngắn thời gian phát triển ứng dụng. Với công cụ và nền tảng được cập nhật, lập trình viên có thể dễ dàng viết và chạy thử ứng dụng cho Windows 8.1. Visual Studio 2013 cung cấp một bộ công cụ mạnh để xây dựng phần mềm cho Windows, Web, các thiết bị di động và Microsoft O•ce. Cung cấp môi trường xây dựng các ứng dụng hấp dẫn hiện đại nhằm đáp ứng nhu cầu đáp ứng nhu cầu luôn thay đổi, cần truy cập mọi nơi và cần dữ liệu đa dạng, phức hợp của khách hàng. Dù nền tảng phát triển là gì, Visual Studio vẫn nâng cao hiệu quả hoạt động của nhà phát triển bằng cách cung cấp công cụ để họ viết mã nhanh hơn và đơn giản hoá những tác vụ liên quan đến việc phát triển phần mềm.Với Visual Studio 2013, nhà phát triển có thể: - Viết mã code nhanh hơn: Visual Studio 2013 cung cấp nhiều tính năng nâng cao hiệu quả hoạt động, chế độ hoàn chỉnh tự động, chế độ tự điều chỉnh màu, chế độ tra cứu phương pháp, kiểm tra lỗi đánh máy và lỗi cú pháp, phân tích lại mã, quản lý các đoạn mã v.v LINQ (Language- Integrated Query), tập hợp các phần mở rộng cho ngôn ngữ C# và Visual Basic để giúp nhà phát triển có một cách tiếp cận nhất quán và nếu cần truy vấn & chuyển đổi các tập hợp đối tượng, dữ liệu ADO.NET, XML, cơ sở dữ liệu SQL Server thì sẽ viết ít mã hơn. - Sử dụng công cụ tích hợp Visual Studio 2013 cung cấp một bộ công cụ tích hợp nhưng không phải là để viết mã. Hệ thống dự án Visual Studio sẽ giúp nhà phát triển quản lý nhiều khía cạnh trong nỗ lực phát triển phần mềm, bao gồm cả việc cài đặt và triển khai phần mềm. Trong một dự án, các tính năng như Web Forms Designer, Windows Forms Designer, Data Designer, Data Explorer, Server Explorer, công cụ tạo chương trình, công cụ tìm và khắc phục lỗi và cả một chương trình trợ giúp tích hợp sẽ liên kết với nhau giúp nhà phát triển làm việc hiệu quả hơn. 2.2.3 Ngôn ngữ C# C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất đó là C++ và Java. Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dể sử dụng hơn. Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không dừng ở lại đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này: - C# là ngôn ngữ đơn giản: ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu người dùng thân thiện với C và C++ thậm chí là Java, người dùng sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. - C# là ngôn ngữ hiện đại: những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại. - C# là ngôn ngữ hướng đối tượng: những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented laguage) là sự đóng gói (encapsulation), sự kế thừa (inheritance) và đa hình (polymorphism). - C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo: C# được sử dụng nhiều cho các dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho ngôn ngữ khác. - C# là ngôn ngữ ít từ khóa: C# là ngôn ngữ sử dụng giới hạn những từ khóa, phần lớn các từ khóa được sử dụng để mô tả thông tin. - C# là ngôn ngữ hướng module: mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó. 2.3 Kiến trúc Entity Framework 2.3.1 Giới thiệu Entity Framework là một bộ ánh xạ đối tượng – quan hệ cho phép người lập trình .NET làm việc với dữ liệu quan hệ qua các đối tượng (object) nó giúp lập trình viên không cần viết mã cho (hầu hết) những gì liên quan đến truy cập dữ liệu. Entity Framework có các đặc tính nhắm đến các ứng dụng doanh nghiệp (“Enterprise Scenarios”). Trong một doanh nghiệp, một CSDL thông thường được kiểm soát bởi DBA (người quản trị CSDL), cấu trúc của CSDL thông thường được tối ưu cho việc lưu trữ (hiệu năng, tính toàn vẹn, phân hoạch) hơn là cho một mô hình ứng dụng tốt, và có thể thay đổi qua thời gian khi dữ liệu và việc sử dụng phát triển lên. Với ý tưởng này, Entity Framework được thiết kế xung quanh việc xây dựng một mô hình dữ liệu hướng tới ứng dụng, ít phụ thuộc, thậm chí có thể khác một chút so với cấu trúc CSDL thực sự. Ví dụ, chúng ta có thể ánh xạ một lớp đơn (hay “thực thể”) và nhiều table/view, hay ánh xạ nhiều lớp vào cùng một table/view. Chúng ta có thể ánh xạ vào một cấu trúc phân cấp vào một table/view đơn (như trong LINQ to SQL) hay vào nhiều table/view (ví dụ: person, customer, employee có thể nằm trong các bảng riêng biệt vì customer và employee chỉ chứa thêm một số thông tin không có trong person, hoặc lặp lại các cột từ bảng person). Chúng ta có thể nhóm các thuộc tính vào các kiểu phức hợp (“complex”, hay “composite”), ví dụ một kiểu Customer có thể có thuộc tính “Address” với kiểu Address có các thuộc tính Street, City, Region, Country và Postal). Entity Framework cũng cho phép chúng ta biểu diễn quan hệ nhiều-nhiều một cách trực tiếp, mà không cần tới bảng kết nối như một thực thể trong mô hình dữ liệu, và có một đặc tính mới được gọi là “Deˆning Query”, có thể được dùng cho việc biểu diễn một bảng ảo với dữ liệu lấy từ một câu truy vấn (ngoài trừ việc cập nhật phải thông qua một stored procedure). Khả năng ánh xạ mềm dẻo này, bao gồm tùy chọn dùng các stored procedure để xử lý các thay đổi, có thể được thực hiện chỉ bằng cách khai báo, hoặc chỉnh sửa lại khi yêu cầu thay đổi, mà không cần phải biên dịch lại ứng dụng. 2.3.2 Các thành phần trong Entity Framework - Code là mã lệnh tạo thành các lớp đối tượng dữ liệu cho phép thao tác với dữ liệu. - Model là sơ đồ gồm các hộp mô tả các thực thể và các đường nối kết mô tả các quan hệ. - Database là cơ sở dữ liệu (có thể là SQL Server, Compact SQL Server, Local database, MySQL, Oracle,…) [...]... phòng - Đặc tả dữ liệu: • Khách Trọ: Mỗi khách trọ của khu trọ được quản lý các thông tin sau đây: Họ tên, giới tính, ngày sinh, số CMND, quê quán, nghề nghiệp, địa chỉ nơi làm việc, số điện thoại, tiền nợ, trạng thái, chú thích • Phòng: Mỗi phòng được quản lý các thông tin sau đây: Tên phòng, loại phòng, giá phòng, trạng thái • Dịch vụ: Một dịch vụ của khu trọ được quản lý các thông tin sau đây: Tên... liệu Khi sử dụng EntityClient trả về thực thể dữ liệu chỉ đọc như rowsets sử dụng một EntityDataReader Nếu là một chuyên gia về ngôn ngữ truy vấn SQL, Entity SQL có vẻ tự nhiên nhất để sử dụng -Sử dụng ObjectContext ObjectContext là lớp chính trong Entity Framework tương tác với cơ sở dữ liệu ObjectContext duy trì kết nối với cơ sở dữ liệu và cũng quản lý tất cả các theo tác đọc và ghi Entity Data Model... bảng Chúng ta nên xem xét sử dụng Entity SQL trong các trường hợp sau đây: Khi một truy vấn được tự động xây dựng tại thời điểm runtime: trong trường hợp này, nên xem xét sử dụng các phương pháp xây dựng truy vấn của ObjectQuery thay vì xây dựng một chuỗi truy vấn SQL Entity tại thời điểm runtime Khi muốn định nghĩa một truy vấn như là một phần của định nghĩa mô hình: chỉ Entity SQL được hỗ trợ trong một... đồng ý thuê phòng thì chủ trọ yêu cầu đóng tiền đặt cọc và ghi lại thông tin của khách như tên, giới tính, ngày sinh, quê quán, số điện thoại cùng các thông tin cá nhân liên quan để lập phiếu đăng ký thuê phòng, khách trọ vừa đăng ký sẽ có trạng thái là đang ở để chỉ khách trọ đang ở trong khu trọ Khi khách trọ chuyển vào ở thì tiền đặt cọc sẽ được trả lại cho khách, chủ trọ yêu cầu khách ghi bản khai... đã thiết kế - Có thể ánh xạ 1-1, 1-nhiều, nhiều-1, nhiều-nhiều giữa đối tượng entity với table/view Chương 3: Nội dung và kết quả thực tập: 3.1 Phân tích thiết kế 3.1.1 Quy trình hoạt động của hệ thống Khi có khách trọ đến thuê phòng ở, chủ trọ sẽ kiểm tra xem còn phòng trống hay không Nếu tất cả các phòng đã đầy thì chủ trọ thông báo cho khách, ngược lại thì cho khách biết thông tin về phòng như tên... khách, chủ trọ yêu cầu khách ghi bản khai nhân khẩu, tạm trú tạm vắng để trình báo cơ quan công an Còn nếu sau 1 tuần kể từ ngày đăng ký khách không vào ở thì tiền đặt cọc sẽ thuộc về chủ trọ, thông tin phiếu đăng ký của khách đó sẽ bị hủy, trạng thái của khách được sửa thành không ở để chỉ khách không ở trong khu trọ Cuối tháng chủ trọ đi đến từng phòng ghi lại số công tơ điện, số công tơ nước và kiểm... thiết kế các class tương ứng với các table của database mà chúng ta cần làm việc hoặc muốn tạo ra Với hướng tiếp cận này, chúng ta sẽ sử dụng class DbContext thay vì ObjectContext để thao tác với database Việc sử dụng Code First đòi hỏi chúng ta phải thực hiện các công việc một cách thủ công nhưng bù lại nó linh hoạt và được sử dụng rất phổ biến 2.3.3 Đặc điểm của Entity Framework - Sử dụng DbContext... gắn với vòng đời của mỗi request là điều nên làm Việc tạo mới và hủy một đối tượng không làm chúng ta quá tốn kém CPU hay bộ nhớ, và cần nhớ rằng, việc hủy các đối tượng càng sớm càng tốt là một trong những kinh nghiệm tốt mà chúng ta nên tuân theo và đối tượng DbContext của EF cũng không phải là ngoại lệ -Sử dụng Entity SQL Entity SQL là một ngôn ngữ truy vấn lưu trữ độc lập mà là tương tự như SQL Entity. .. chúng ta sẽ có một đối tượng theo dõi các thay đổi của dữ liệu, và đối tượng đó sẽ quản lý việt cập nhật những thay đổi đến CSDL Điều này cũng có nghĩa là DbContext sẽ giữ bản sao chép cục bộ của dữ liệu (ở CSDL) với những thay đổi chưa được cập nhật Đối tượng DBContext phải có thời gian sống ngắn, mẫu Unit Of Work khuyên chúng ta nên có đối tượng UnitOfWork cho mỗi giao dịch Bởi vì đối tượng này giữ... cập nhật CSDL để phòng trường hợp có truy vấn khác đến dữ liệu này Chúng ta hầu như không thể xử lý được mọi tình huống truy xuất/cập nhật đồng bộ Nhưng việc giảm thời gian sống của DbContext càng ngắn càng tốt, vì chúng ta đang giảm nguy cơ xảy ra các mâu thuẫn khi xử lý đồng bộ như đã nêu trên Với lập trình web, ta nên giữ đối tượng DbContext sống trong vòng đời một web request đến ứng dụng Nếu ta