Font size
WorksheetsCâu hỏi về LINQ và EF Core
Total questions: 121
Worksheet time: 1hrs 16mins
Cú pháp sau để thực hiện Explicit Loading thuộc tính Accounts của một đối tượng Customer là:
context.Entry(customer).Collection(c => c.Accounts).Load()
customer.Accounts.Load()
context.Customers.Load(customer.Accounts)
customer.Load(c => c.Accounts)
Phương thức ToList() trong LINQ có chức năng gì?
Chuyển đổi kết quả truy vấn thành danh sách.
Thêm một phần tử vào danh sách.
Xóa tất cả phần tử trong danh sách.
Sắp xếp danh sách theo thứ tự.
Để truy vấn toàn bộ khách hàng từ bảng Customers, bạn sử dụng:
context.Customers.ToList()
context.Customers.Add()
context.Customers.Update()
context.Customers.Remove()
Trong ví dụ truy vấn dữ liệu, vòng lặp foreach được sử dụng để:
Duyệt qua danh sách các đối tượng trả về từ truy vấn.
Thêm đối tượng mới vào danh sách.
Xóa đối tượng trong danh sách.
Sắp xếp danh sách theo tên.
Câu lệnh LINQ "context.Accounts.Where(a => a.Balance > 1000)" có tác dụng gì?
Truy vấn các tài khoản có số dư lớn hơn 1000.
Truy vấn các tài khoản có số dư nhỏ hơn 1000.
Thêm mới tài khoản với số dư 1000.
Xóa tài khoản có số dư 1000.
Phương thức Include() trong EF Core giúp bạn làm gì?
Tải dữ liệu liên quan từ các bảng có quan hệ.
Thêm mới đối tượng vào DbSet.
Xóa đối tượng khỏi DbSet.
Cập nhật đối tượng trong DbSet.
Khi sử dụng Lazy Loading, dữ liệu liên quan được tải khi:
Thuộc tính điều hướng được truy cập lần đầu tiên.
Ngay khi đối tượng được tạo.
Sau khi gọi SaveChanges().
Sau khi kết thúc chương trình.
Explicit Loading yêu cầu bạn phải:
Gọi phương thức Load() trên entry của đối tượng.
Sử dụng Include() trong truy vấn.
Kích hoạt Lazy Loading.
Không cần gọi thêm phương thức nào.
Kết quả của truy vấn LINQ trong EF Core thường là:
Kết quả của truy vấn LINQ trong EF Core thường là:
Mộ t tập hợp các đối tượng thực thể.
Mộ t đối tượng đơn lẻ.
Mộ t chuỗi kế t nối.
Một file cấu hình.
Nếu không tìm thấy đối tượng phù hợp trong truy vấn với FirstOrDefault(), kết quả trả về là:
Null.
Mộ t đối tượng rỗng.
Mộ t exception.
Mộ t giá trị mặ c định của kiểu int.
LINQ cho phép viết truy vấn trực tiếp trong C# nhờ tính năng:
Tích hợp ngôn ngữ.
Sử dụng SQL thuần.
Sử dụng JavaScript.
Sử dụng XML.
Để truy vấn dữ liệu từ bảng Accounts có số dư lớn hơn 1000, cú pháp đúng là:
context.Accounts.Where(a => a.Balance > 1000).ToList().
context.Accounts.Add(a => a.Balance > 1000).
context.Accounts.Update(a => a.Balance > 1000).
context.Accounts.Remove(a => a.Balance > 1000).
Eager Loading giảm số lượng truy vấn đến cơ sở dữ liệu bằng cách:
Tả i tất cả dữ liệu liên quan trong một truy vấn.
Tả i dữ liệu theo từng bước.
Không tải dữ liệu liên quan.
Tả i dữ liệu theo thời gian.
Khi sử dụng Lazy Loading, vấn đề N+1 query có thể xảy ra nếu:
Không cẩn thận trong việc truy cập thuộc tính điều hướng.
Luôn sử dụng Include().
Sử dụng Explicit Loading.
Gọi ToList() trước khi truy vấn.
Nếu không tìm thấy khách hàng có CustomerId == 1, phương thức FirstOrDefault() sẽ trả về:
Null.
Mộ t đối tượng rỗng.
Mộ t exception.
Mộ t giá trị mặ c định của kiểu int.
Việc sử dụng LINQ trong EF Core giúp giảm thiểu:
Việc viết mã SQL thủ công.
Số lượng đối tượng tạo ra.
Kích thước của cơ sở dữ liệu.
Thời gian khởi động ứng dụng.
Eager Loading có thể cải thiện hiệu suất truy vấn khi:
Cần dữ liệu liên quan từ nhiều bảng cùng lúc.
Chỉ cần dữ liệu của một bảng đơn lẻ.
Không cần dữ liệu liên quan.
Truy vấn dữ liệu với số lượng nhỏ.
Một điểm mạnh của việc sử dụng EF Core kết hợp với LINQ để truy vấn dữ liệu là gì?
Một điểm mạnh của việc sử dụng EF Core kết hợp với LINQ để truy vấn dữ liệu là:
Tăng tính trực quan và dễ hiểu của mã truy vấn.
Yêu cầu phải viết mã SQL phức tạp.
Tăng số lượng lỗi truy vấn.
Giảm khả năng bảo trì của mã nguồn.
Để cập nhật dữ liệu trong EF Core, bước đầu tiên bạn cần làm là gì?
Gọi phương thức SaveChanges()
Truy vấn đối tượng cần cập nhật từ cơ sở dữ liệu
Sử dụng phương thức Update() ngay lập tức
Khởi tạo đối tượng mới từ DbContext
Sau khi thay đổi thuộc tính của đối tượng, bước tiếp theo để áp dụng cập nhật vào SQL Server là gì?
Gọi phương thức Add()
Gọi phương thức Update()
Gọi phương thức SaveChanges()
Gọi phương thức Remove()
Phương thức SaveChanges() của DbContext có tác dụng gì?
Chỉ theo dõi trạng thái đối tượng
Thực thi các câu lệnh SQL INSERT
Thực thi các câu lệnh SQL UPDATE cho các đối tượng đã thay đổi
Xóa các đối tượng không cần thiết
Trong ví dụ cập nhật thông tin khách hàng, lệnh LINQ FirstOrDefault() được dùng để:
Tạo mới khách hàng
Tìm khách hàng có CustomerId bằng 1 hoặc trả về null nếu không có
Xóa khách hàng có CustomerId bằng 1
Cập nhật thông tin khách hàng
Nếu không tìm thấy khách hàng có CustomerId = 1, kết quả của phương thức FirstOrDefault() là gì?
Một đối tượng rỗng
Null
Exception
Một đối tượng mặc định
Khi cập nhật số dư tài khoản, thao tác "account.Balance += 500.00m" có ý nghĩa gì?
Giảm số dư tài khoản đi 500
Tăng số dư tài khoản thêm 500
Đặt số dư tài khoản bằng 500
Không thay đổi số dư
Trong EF Core, khi một đối tượng bị thay đổi, trạng thái của nó sẽ được đánh dấu là gì?
Added
Modified
Deleted
Unchanged
Khi sử dụng phương thức Update() của DbContext, điều kiện cần đảm bảo đối với đối tượng được cập nhật là gì?
Đối tượng phải có ID và chứa đầy đủ các thuộc tính cập nhật
Đối tượng không
Khi sử dụng phương thức Update() của DbContext, điều kiện cần đảm bảo đối với đối tượng được cập nhật là gì?
Đối tượng phải có ID và chứa đầy đủ các thuộc tính cập nhật
Đối tượng không cần chứa ID
Đối tượng chỉ chứa thuộc tính cần thay đổi
Đối tượng phải được tạo mới mà không truy vấn từ cơ sở dữ liệu
Điểm khác biệt chính giữa việc cập nhật thông qua thay đổi thuộc tính của đối tượng và sau đó gọi SaveChanges() so với việc sử dụng trực tiếp Update() là gì?
Phương pháp đầu tiên không yêu cầu truy vấn đối tượng từ cơ sở dữ liệu, còn phương pháp thứ hai thì cần
Phương pháp thứ nhất yêu cầu truy vấn đối tượng từ cơ sở dữ liệu trước khi cập nhật, trong khi Update() cho phép cập nhật đối tượng đã có sẵn
Cả hai đều yêu cầu truy vấn đối tượng trước
Không có sự khác biệt
Khi gọi SaveChanges(), EF Core sẽ chuyển đổi các thay đổi của đối tượng thành lệnh SQL nào?
INSERT
UPDATE
DELETE
SELECT
Phương thức Update() thường được sử dụng trong trường hợp nào?
Khi bạn muốn thêm đối tượng mới vào cơ sở dữ liệu
Khi bạn đã có đối tượng với các thuộc tính cập nhật và không cần truy vấn trước từ cơ sở dữ liệu
Khi bạn muốn xóa một đối tượng
Khi bạn chỉ muốn đọc dữ liệu
Khi cập nhật thông tin khách hàng, nếu đối tượng không được tìm thấy, EF Core sẽ:
Thực hiện cập nhật mặc định
Báo lỗi khi gọi SaveChanges()
Không thực hiện cập nhật và không gọi SaveChanges()
Thực hiện tạo đối tượng mới
Trong EF Core, trạng thái "Added" được gán cho đối tượng khi nào?
Khi đối tượng được cập nhật
Khi đối tượng được thêm vào DbSet bằng phương thức Add()
Khi đối tượng bị xóa
Khi đối tượng được truy vấn từ cơ sở dữ liệu
Sau khi thay đổi thuộc tính của đối tượng đã truy vấn, trạng thái của nó chuyển sang:
Modified
Deleted
Unchanged
Detached
Khi sử dụng phương thức Update(), EF Core sẽ đánh dấu đối tượng là gì?
Added
Modified
Deleted
Unchanged
Phương thức SaveChanges() sẽ tạo ra giao dịch SQL nào ch
Khi sử dụng phương thức Update(), EF Core sẽ đánh dấu đối tượng là gì?
Added
Modified
Deleted
Unchanged
Phương thức SaveChanges() sẽ tạo ra giao dịch SQL nào cho các đối tượng có trạng thái Modified?
INSERT
UPDATE
DELETE
SELECT
Trong ví dụ cập nhật số dư tài khoản, nếu tài khoản không tồn tại, kết quả thực thi sẽ là gì?
Cập nhật thành công
Hiển thị thông báo "Không tìm thấy tài khoản với ID này."
Tạo mới tài khoản với số dư mặc định
Báo lỗi exception và dừng chương trình
Khi bạn sử dụng phương thức Update() để cập nhật một đối tượng, bạn cần gọi phương thức nào để cam kết thay đổi vào cơ sở dữ liệu?
Commit()
SaveChanges()
ApplyChanges()
ExecuteUpdate()
EF Core theo dõi thay đổi của đối tượng thông qua cơ chế nào?
Change Tracking
Data Logging
Event Handling
Manual Update
Việc khởi tạo đối tượng DbContext trong quá trình cập nhật dữ liệu nhằm mục đích gì?
Tạo giao diện người dùng
Thiết lập kết nối giữa ứng dụng và cơ sở dữ liệu
Quản lý bộ nhớ cache
Xóa dữ liệu cũ
Khi cập nhật thông tin khách hàng, thuộc tính nào được thay đổi trong ví dụ?
Name
Email và Phone
Address
CustomerId
Trong ví dụ cập nhật số dư tài khoản, thao tác "account.Balance += 500.00m" có tác dụng gì?
Giảm số dư tài khoản đi 500
Tăng số dư tài khoản thêm 500
Đặt số dư tài khoản bằng 500
Không thay đổi số dư
Khi sử dụng phương thức Update(), nếu đối tượng được truyền không có thay đổi nào, EF Core sẽ:
Không thực hiện lệnh SQL UPDATE
Vẫn đánh dấu đối tượng là Modified và thực hiện UPDATE
Báo lỗi do không có thay đổi
Tự động xóa đối tượng
Việc sử dụng EF Core cho thao tác CRUD giúp nhà phát triển tập trung vào:
Việc viết mã SQL thủ công
Logic nghiệp vụ của ứng dụng
Quản lý giao diện người dùng
Cấu hình phần cứng máy chủ
Một trong những lợi ích của việc sử dụng phương pháp Code First với EF Core là:
Cơ sở dữ liệu được tạo tự động từ các lớp thực thể
Ph
Một trong những lợi ích của việc sử dụng phương pháp Code First với EF Core là:
Cơ sở dữ liệu được tạ o tự động từ các lớp thực thể
Phải viết toàn bộ câu lệnh SQL thủ công
Không hỗ trợ quan hệ giữa các bảng
Yêu cầu sử dụng nhiều công cụ bên thứ ba
Khi cập nhật dữ liệu qua EF Core, nếu có nhiều đối tượng bị thay đổi, phương thức SaveChanges() sẽ:
Áp dụng tất cả các thay đổi trong một giao dịch
Cập nhật từng đối tượng riêng lẻ với nhiều giao dịch
Chỉ cập nhật đối tượng đầu tiên
Không áp dụng thay đổi nào
Việc sử dụng Update() của DbContext giúp giảm thiểu rủi ro do:
Việc phải viết mã SQL thủ công
Việc phải thiết kế giao diện người dùng
Việc phải quản lý kết nối mạng
Việc tạo đố i tượng DbContext mới liên tục
Sau khi gọi Update() và SaveChanges(), dữ liệu trong cơ sở dữ liệu sẽ:
Được xóa bỏ
Được cập nhật theo các giá trị của đối tư ợng
Không thay đổi
Được sao chép
EF Core hỗ trợ thao tác CRUD thông qua các phương thức nào?
Add(), SaveChanges(), Update(), Remove()
Insert(), Commit(), Refresh(), Delete()
Create(), Execute(), Modify(), Drop()
Build(), Run(), Stop(), Restart()
Một lợi ích của việc sử dụng EF Core cho thao tác cập nhật dữ liệu là:
Giúp giảm thiểu lỗi phát sinh từ việc viết câu lệnh SQL thủ công
Tăng độ phức tạp trong quản lý dữ liệu
Yêu cầu phải học ngôn ngữ SQL sâu rộng
Giảm khả năng mở rộng của ứng dụng
Phương thức Remove() trong EF Core dùng để làm gì?
Thêm đối tượng vào DbSet.
Xóa đối tượng khỏi DbSet.
Cập nhật thuộc tính của đối tượng.
Truy vấn đối tượng từ cơ sở dữ liệu.
Sau khi gọi Remove() trên đối tượng, bước tiếp theo cần thực hiện để áp dụng thay đổi vào cơ sở dữ liệu là gì?
Gọi phương thức SaveChanges().
Gọi phương thức Update().
Gọi phương thức Add().
Gọi phương thức Commit().
Quy trình xóa dữ liệu với EF Core bao gồm những bước nào?
Quy trình xóa dữ liệu với EF Core bao gồm những bước nào?
Khởi tạo DbContext, thêm đối tượng mới, gọi SaveChanges().
Truy vấn đối tượng cần xóa, gọi Remove(), sau đó gọi SaveChanges().
Truy vấn đối tượng, gọi Update(), rồi gọi SaveChanges().
Khởi tạo DbContext, tạo đối tượng mới, xóa trực tiếp.
Khi truy vấn đối tượng cần xóa mà không tìm thấy kết quả, phương thức FirstOrDefault() trả về giá trị gì?
Mộ t đối tượng mặc định.
Null.
Mộ t exception.
Mộ t chuỗi rỗng.
Trong ví dụ xóa tài khoản, nếu không tìm thấy tài khoản với AccountId = 1, hệ thống sẽ:
Thực hiện xóa đối tượng.
Hiển thị thông báo "Không tìm thấy tài khoản với ID này."
Tạo mới tài khoản.
Gọ i lại phương thức Remove().
Để xóa một giao dịch từ bảng Transactions, bạn sử dụng phương thức nào của DbSet?
Update()
Add()
Remove()
Insert()
Khi xóa đối tượng có liên quan đến khóa ngoại, bạn cần chú ý gì?
Phải đảm bảo rằng các bản ghi liên quan không ảnh hưởng đến mối quan hệ khóa ngoạ i.
Không cần lưu ý gì vì EF Core tự động xóa liên quan.
Chỉ xóa các bản ghi ở bảng cha.
Không xóa dữ liệu nếu có liên hệ.
Khi chỉ có ID của đố i tượng, bạn có thể tạo một đối tượng mới chỉ với ID đó và gọi Remove(). Điều này có lợi thế gì?
Giảm số lượng truy vấn đến cơ sở dữ liệu.
Tăng độ phức tạp của mã nguồn.
Yêu cầu thêm thuộc tính khác.
Bắ t buộc phải truy vấn đối tượng trước.
Trong quá trình xóa dữ liệu, việc gọi SaveChanges() sẽ thực hiện lệnh SQL nào?
INSERT
UPDATE
DELETE
SELECT
Khi sử dụng Remove() để xóa đối tượng, EF Core đánh dấu trạng thái của đối tượng đó là gì?
Added
Modified
Deleted
Unchanged
Nếu bạn không gọi SaveChanges() sau khi gọi Remove(), dữ liệu trong cơ sở dữ liệu sẽ:
Được cập nhật.
Không thay đổi.
Bị xóa.
Bị cập nhật sau một thời gian.
i Remove(), dữ liệu trong cơ sở dữ liệu sẽ:
Được cập nhật.
Không thay đổi.
Bị xóa.
Bị cập nhật sau một thời gian.
Khi cập nhật dữ liệu, EF Core theo dõi sự thay đổi của đối tượng thông qua cơ chế nào?
Change Tracking.
Data Logging.
Event Handling.
Manual Monitoring.
Khi xóa một đối tượng đã được truy vấn từ cơ sở dữ liệu, việc Remove() được gọi trên DbSet sẽ:
Thay đổi trạng thái của đối tượng thành "Deleted".
Thay đổi trạng thái của đối tượng thành "Modified".
Thay đổi trạng thái của đối tượng thành "Added".
Không thay đổi trạng thái của đối tượng.
Việc sử dụng phương thức Remove() giúp phát triển viên tránh được lỗi nào?
Lỗi do viết mã SQL thủ công.
Lỗi giao diện người dùng.
Lỗi biên dịch C#.
Lỗi quản lý bộ nhớ.
Khi xóa một đối tượng mà có mối quan hệ khóa ngoại, việc cấu hình ON DELETE CASCADE trong cơ sở dữ liệu giúp:
Tự động xóa các bản ghi liên quan.
Ngăn chặn xóa đối tượng.
Cập nhật các bản ghi liên quan.
Tạo ra lỗi xóa.
Trong ví dụ xóa tài khoản, sau khi tìm được tài khoản với AccountId = 1, lệnh Remove() được sử dụng để:
Xóa đối tượng khỏi DbSet.
Cập nhật đối tượng.
Thêm đối tượng mới.
Chuyển đổi đối tượng sang trạng thái Modified.
Khi xóa dữ liệu bằng EF Core, nếu đối tượng có sẵn trong bộ nhớ nhưng không được xác thực tồn tại trong cơ sở dữ liệu, điều này có thể dẫn đến:
Lỗi kết nối.
Không thực hiện xóa và không gây lỗi.
Thông báo thành công mặc dù không có dữ liệu.
Lỗi ngoại lệ khi SaveChanges() được gọi.
Khi sử dụng phương thức Remove() trên một đối tượng, nếu đối tượng không tồn tại trong DbContext, EF Core sẽ:
Tự động tạo đối tượng đó.
Báo lỗi ngay lập tức.
Thực hiện xóa mà không truy vấn trước.
Không đánh dấu đối tượng và không thực hiện lệnh DELETE.
Trong trường hợp xóa theo ID, khi chỉ có ID mà không có dữ liệu đầy đủ, bạn cần làm gì?
Truy vấn đối tượng từ cơ sở dữ liệu trước khi xóa.
Tạo đối tượng mới với ID đó và gọi Remove().
Bỏ
Trong trường hợp xóa theo ID, khi chỉ có ID mà không có dữ liệu đầy đủ, bạn cần làm gì?
Truy vấn đối tượng từ cơ sở dữ liệu trước khi xóa.
Tạo đối tượng mới với ID đó và gọi Remove().
Bỏ qua thao tác xóa.
Sử dụng phương thức Update() thay vì Remove().
Việc gọi SaveChanges() sau khi Remove() có tác dụng gì đối với cơ sở dữ liệu?
Chỉ cập nhật dữ liệu tạm thời.
Thực thi lệnh SQL DELETE để xóa bản ghi.
Tạo ra một bản sao lưu mới.
Khởi động lại kết nố i đến cơ sở dữ liệu.
Khi xóa dữ liệu, nếu có nhiều đối tượng bị thay đổi, SaveChanges() sẽ:
Áp dụng từng thay đổi riêng lẻ trong các giao dịch riêng biệt.
Áp dụng tất cả các thay đổi trong một giao dịch duy nhất.
Không áp dụng bất kỳ thay đổi nào.
Áp dụng thay đổi theo thứ tự ngẫu nhiên.
Trong EF Core, thao tác xóa dữ liệu thuộc về nhóm các thao tác CRUD nào?
Create
Read
Update
Delete
Khi bạn xóa dữ liệu khỏi bảng Transactions, thuộc tính nào trong lớp Transaction xác định mối quan hệ với bảng khác?
TransactionId
AccountId
TransactionType
Amount
Trong trường hợp xóa dữ liệu có liên quan đến khóa ngoại, nếu không cấu hình quy tắc xóa, hệ thống có thể:
Tự động xóa các bản ghi liên quan.
Phát sinh lỗi do vi phạm ràng buộc khóa ngoạ i.
Cập nhật các bản ghi liên quan.
Bỏ qua việc xóa dữ liệu.
Khi sử dụng Remove() để xóa đối tượng, EF Core sẽ:
Loại bỏ đối tượng khỏi bộ nhớ của ứng dụng ngay lập tức.
Đánh dấu đố i tượng để xóa khỏi cơ sở dữ liệu khi gọi SaveChanges().
Tạo một bản sao đối tượng và xóa bản sao đó.
Không thực hiện hành động nào cho đến khi gọi Update().
Việc xóa dữ liệu bằng EF Core giúp nhà phát triển tập trung vào:
Việc viết câu lệnh SQL phức tạp.
Logic nghiệp vụ của ứng dụng.
Thiết kế giao diện người dùng.
Tăng số lượng đối tượng trong bộ nhớ.
Một lợi ích của việc sử dụng EF Core cho thao tác xóa dữ liệu là:
Giảm thiểu lỗi phát sinh từ việc viết mã SQL thủ công.
Yêu cầu phải viết nhiều mã SQL hơn.
Một lợi ích của việc sử dụng EF Core cho thao tác xóa dữ liệu là:
Giảm thiểu lỗi phát sinh từ việc viết mã SQL thủ công.
Yêu cầu phải viết nhiều mã SQL hơn.
Tăng độ phức tạp của quy trình xóa dữ liệu.
Không hỗ trợ xóa dữ liệu liên quan.
Sau khi gọi Remove() và SaveChanges(), dữ liệu được xóa khỏi cơ sở dữ liệu sẽ:
Vẫn tồn tại trong cơ sở dữ liệu.
Bị cập nhật với giá trị mặc định.
Bị xóa khỏi cơ sở dữ liệu hoàn toàn.
Bị chuyển sang trạng thái Modified.
EF Core hỗ trợ thao tác xóa dữ liệu thông qua những phương thức nào?
Add() và SaveChanges().
Update() và SaveChanges().
Remove() và SaveChanges().
Insert() và Commit().
Giao dịch (Transaction) trong cơ sở dữ liệu là gì?
Một đơn vị công việc độc lập chứa một hoặc nhiều thao tác cơ sở dữ liệu.
Một truy vấn SQL đơn lẻ.
Mộ t bảng lưu trữ dữ liệu.
Một phương thức của DbContext.
Trong EF Core, đối tượng nào được sử dụng để bắt đầu một giao dịch?
DbSet.
DbContextTransaction (hoặc Transaction từ context.Database.BeginTransaction()).
ModelBuilder.
IConfiguration.
Điều gì xảy ra khi gọi transaction.Commit() trong EF Core?
Các thay đổi trong giao dịch được lưu vĩnh viễn vào cơ sở dữ liệu.
Các thay đổi được tạm thời lưu vào bộ nhớ.
Giao dịch bị hủy và dữ liệu được khôi phục.
Kế t nối đến cơ sở dữ liệu bị đóng.
Nếu một lỗi xảy ra trong quá trình thực hiện giao dịch, hành động nào sau đây được thực hiện để bảo vệ dữ liệu?
Gọ i transaction.Commit().
Gọ i transaction.Rollback().
Gọ i context.SaveChanges() mà không xử lý lỗi.
Không làm gì cả.
Đặc tính Atomicity của giao dịch có ý nghĩa gì?
Tấ t cả các thao tác trong giao dịch đều phải thành công hoặc không thao tác nào được thực hiện.
Chỉ mộ t số thao tác được thực hiện.
Các thao tác trong giao dịch có thể được thực hiện độc lập.
Giao dịch được tách thành các phần nhỏ.
Đặc tính Consistency của giao dịch đảm bảo điều gì?
Đặc tính Consistency của giao dịch đảm bảo điều gì?
Cơ sở dữ liệu chuyển từ trạng thái hợp lệ này sang trạng thái hợp lệ khác.
Các thao tác trong giao dịch được thực hiện theo thứ tự ngẫu nhiên.
Các dữ liệu trong giao diện được cập nhật đồng bộ.
Chỉ có một thao tác được thực hiện.
Đặc tính Isolation của giao dịch đảm bảo:
Các giao dịch độc lập và không bị ảnh hưởng bởi giao dịch khác.
Các giao dịch được thực hiện đồng thời.
Các giao dịch được lưu trữ tạm thời.
Các giao dịch có thể chia sẻ dữ liệu trực tiếp.
Đặc tính Durability của giao dịch có nghĩa là:
Sau khi giao dịch được commit, các thay đổi sẽ được lưu vĩnh viễn trong cơ sở dữ liệu.
Các thay đổi chỉ tồn tại trong phiên làm việc hiện tại.
Các thay đổi có thể bị mất nếu máy chủ khởi động lại.
Các thay đổi được lưu trong bộ nhớ cache.
Trong ví dụ quản lý giao dịch, sau khi thêm khách hàng và tài khoản, nếu không có lỗi nào xảy ra, bạn nên gọi phương thức nào để kết thúc giao dịch?
transaction.Rollback()
transaction.Commit()
context.SaveChanges()
context.Database.Close()
Khi sử dụng DbContext.Database.BeginTransaction(), đối tượng giao dịch sẽ:
Tự động commit khi kết thúc khối using.
Phải được commit hoặc rollback thủ công trong khối using.
Không cho phép rollback.
Tự động rollback khi không có lỗi.
Trong ví dụ về giao dịch, nếu một thao tác thất bại, kết quả của transaction.Rollback() là gì?
Chỉ thao tác thất bại được hoàn tác.
Tất cả các thao tác trong giao dịch đều bị hoàn tác.
Các thao tác trước đó vẫn được lưu.
Không có hành động nào xảy ra.
Khi thực hiện nhiều thao tác (thêm, cập nhật, xóa) trong cùng một giao dịch, mục đích chính là:
Đảm bảo tính liên tục của giao dịch.
Đảm bảo tất cả các thao tác thành công hoặc không thao tác nào được áp dụng.
Giảm thời gian xử lý của từng thao tác riêng lẻ.
Tăng số lượng thao tác.
Trong khối try-catch khi quản lý giao dịch, việc gọi transaction.Rollback() trong catch đảm bảo:
Chỉ thao tác đầu tiên được hoàn tác.
Toàn bộ giao dịch bị hủy bỏ.
Giao dịch vẫn được commit.
Không có thay đổi nào được lưu.
Để bắt đầu một giao dịch trong EF Core, bạn sử dụng:
context.Database.BeginTransaction().
context.Database.CommitTransaction().
context.Database.CreateTransaction().
context.Database.RollbackTransaction().
Trong ví dụ giao dịch, tại sao cần gọi SaveChanges() sau mỗi thao tác?
Để đảm bảo mỗi thao tác được commit riêng lẻ.
Để theo dõi trạng thái của các đối tượng trong giao dịch.
Để tự động commit giao dịch.
Để tạo bản sao của dữ liệu.
Trong một giao dịch EF Core, nếu có nhiều SaveChanges() được gọi, chúng:
Tạo thành nhiều giao dịch độc lập.
Đều thuộc về cùng một giao dịch hiện hành nếu chưa commit.
Chỉ thao tác cuối cùng được thực hiện.
Không được phép gọi nhiều SaveChanges() trong một giao dịch.
Việc sử dụng giao dịch trong EF Core giúp đảm bảo điều gì trong cơ sở dữ liệu?
Tăng tốc độ xử lý giao diện người dùng.
Bảo vệ tính toàn vẹn và nhất quán của dữ liệu.
Tạo ra nhiều bảng mới tự động.
Giảm số lượng kết nối đến cơ sở dữ liệu.
Trong quản lý giao dịch, từ khóa COMMIT có ý nghĩa gì?
Hoàn tác tất cả các thay đổi trong giao dịch.
Xác nhận và lưu vĩnh viễn các thay đổi vào cơ sở dữ liệu.
Khởi động giao dịch mới.
Không thực hiện thay đổi nào.
Trong quản lý giao dịch, từ khóa ROLLBACK được sử dụng để:
Xác nhận các thay đổi trong giao dịch.
Hoàn tác tất cả các thay đổi nếu có lỗi xảy ra.
Tạo một giao dịch mới.
Chuyển trạng thái đối tượng sang Modified.
Khi một giao dịch được thực hiện thành công, các thay đổi được lưu vào cơ sở dữ liệu được gọi là:
Tính toàn vẹn (Durability).
Tính đồng nhất (Consistency).
Tính nguyên tử (Atomicity).
Tính bức cách (Isolation).
Khi bắt ngoại lệ trong giao dịch với EF Core, nên bao bọc các thao tác giao dịch trong:
Mộ t khối if-else.
Mộ t khối try-catch.
Mộ t khối switch-case.
Mộ t khối lặp while.
Một trong những lợi ích của việc quản lý giao dịch trong EF Core là:
Giảm thiểu rủi ro lỗi phát sinh do sự không nhất quán của dữ liệu.
Tăng số lượng câu lệnh SQL phải viết.
Giảm hiệu suất truy vấn của cơ sở dữ liệu.
Tạo ra dữ liệu trùng lặp.
Trước khi triển khai ứng dụng kế toán, điều gì cần được chuẩn bị cho môi trường sản xuất?
Chỉ cần cài đặt SQL Server trên máy tính cá nhân.
Thiết lập máy chủ cơ sở dữ liệu SQL Server, máy chủ ứng dụng và đảm bảo kết nối giữa chúng.
Chỉ cần cài đặt EF Core.
Chỉ cần cấu hình tệp appsettings.json.
Để tạo cơ sở dữ liệu cho ứng dụng kế toán, bạn có thể sử dụng câu lệnh SQL nào?
CREATE TABLE AccountingDB;
CREATE DATABASE AccountingDB;
INSERT DATABASE AccountingDB;
ALTER DATABASE AccountingDB;
Trong quy trình triển khai, sau khi cập nhật các Migration của EF Core, lệnh nào được sử dụng để áp dụng các thay đổi lên cơ sở dữ liệu sản xuất?
dotnet ef migrations add InitialCreate
dotnet ef database update
dotnet ef migrations remove
dotnet ef database rollback
Khi đóng gói ứng dụng .NET Core để triển khai, lệnh nào sau đây được sử dụng?
dotnet build --configuration Release
dotnet publish --configuration Release --output ./publish
dotnet run --configuration Release
dotnet pack --configuration Release
Trong quá trình triển khai ứng dụng lên máy chủ, nếu sử dụng IIS, bạn cần:
Trong quá trình triển khai ứng dụng lên máy chủ, nếu sử dụng IIS, bạn cần:
Cấu hình một site mới và chỉ định đường dẫn đến thư mục đã đóng gói.
Chạy ứng dụng trực tiếp từ Visual Studio.
Chỉ cần copy tệp DLL lên máy chủ.
Chạy lệnh dotnet run trên máy chủ.
Để đảm bảo ứng dụng kết nối đúng với cơ sở dữ liệu sản xuất, bạn cần cập nhật:
Mã nguồn ứng dụng để thay đổi logic nghiệp vụ.
Tệp cấu hình như appsettings.json hoặc Web.config với chuỗi kết nối chính xác.
Chỉ cập nhật tệp .csproj.
Chỉ cần chạy lại lệnh dotnet publish.
Trong bảo mật và quản lý, việc bảo mật kết nối cơ sở dữ liệu được thực hiện bằng cách nào?
Sử dụng giao thức mã hóa như TLS và hạn chế quyền truy cập từ các địa chỉ IP không tin cậy.
Chỉ sử dụng SQL Server Authentication.
Tắ t tính năng kiểm soát truy cập.
Sử dụng mật khẩu mặc định.
Việc thiết lập cơ chế sao lưu và khôi phục cơ sở dữ liệu nhằm mục đích gì?
Để tăng tốc độ truy vấn dữ liệu.
Để bảo vệ dữ liệu và đảm bảo khả năng khôi phục khi có sự cố.
Để tối ưu hóa giao diện người dùng.
Để tạo ra báo cáo tự động.
Sau khi triển khai ứng dụng, bước kiểm tra sau triển khai bao gồm những hoạt động nào?
Chỉ kiểm tra kết nối cơ sở dữ liệu.
Kiểm tra kết nối cơ sở dữ liệu, tính năng của ứng dụng và hiệu suất khi có nhiều người dùng truy cập.
Chỉ kiểm tra hiệu suất xử lý đồ họa.
Chỉ kiểm tra cấu hình máy chủ ứng dụng.
Một trong những lợi ích của việc triển khai ứng dụng kế toán với EF Core và SQL Server là:
Giúp ứng dụng hoạt động không ổn định.
Tăng cường khả năng mở rộng, đảm bảo tính toàn vẹn và bảo mật của dữ liệu trong môi trường sản xuất.
Yêu cầu viết mã SQL thủ công cho mọi thao tác.
Giảm khả năng quản lý dữ liệu.
