.NET

Entity Framework Core nâng cao

Raw SQL, stored procedures, transaction, AsNoTracking, AsSplitQuery, query tags, interceptors, tinh chỉnh hiệu năng

25 câu hỏi phỏng vấn·
Mid-Level
1

Làm thế nào để thực thi một truy vấn raw SQL nhằm lấy các entity trong EF Core?

Câu trả lời

Phương thức FromSql() hoặc FromSqlRaw() cho phép thực thi các truy vấn raw SQL trong khi trả về các entity được DbContext theo dõi. Điều này hữu ích trong các tình huống mà LINQ không thể biểu diễn truy vấn trực tiếp, chẳng hạn như gọi stored procedures hoặc các hàm trả về bảng. Kết quả sau đó có thể được kết hợp với LINQ để thêm bộ lọc hoặc bao gồm các quan hệ.

2

Sự khác biệt giữa FromSqlRaw() và ExecuteSqlRaw() trong EF Core là gì?

Câu trả lời

FromSqlRaw() được dùng để thực thi các truy vấn SELECT trả về các entity được theo dõi, cho phép kết hợp với LINQ. ExecuteSqlRaw() được dùng để thực thi các lệnh non-query (INSERT, UPDATE, DELETE) và trả về số hàng bị ảnh hưởng. FromSqlRaw() áp dụng cho một DbSet, trong khi ExecuteSqlRaw() áp dụng cho Database. Sự phân biệt này đảm bảo an toàn kiểu và tính nhất quán của mô hình.

3

Làm thế nào để gọi một stored procedure trả về các entity trong EF Core?

Câu trả lời

Sử dụng FromSqlRaw() hoặc Database.SqlQuery<T>() để gọi một stored procedure và ánh xạ kết quả sang các entity. Điều quan trọng là phải thêm AsEnumerable() sau lời gọi để ngăn EF Core cố gắng kết hợp trên kết quả của stored procedure, điều này sẽ gây ra lỗi cú pháp SQL. Các tham số có thể được truyền bằng cú pháp @p0, @p1 để ngăn chặn SQL injection.

4

Vai trò của AsNoTracking() trong EF Core là gì?

5

Khi nào nên sử dụng AsNoTrackingWithIdentityResolution() thay vì AsNoTracking()?

+22 câu hỏi phỏng vấn

Nắm vững .NET cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí