Bài viết giới thiệu cách sử dụng Global Query Filters trong EF Core để triển khai tính năng như soft delete và multi-tenancy. Nó giải thích cách tạo bộ lọc tên (named filters) trong EF Core 10 và áp dụng chúng qua ModelBuilder.HasQueryFilter. Tuy nhiên, khi kết hợp bộ lọc toàn cục với navigation bắt buộc (required navigation), EF Core có thể vô tình loại bỏ các hàng không có navigation liên quan, dẫn đến mất dữ liệu mà không có cảnh báo. Điều này xảy ra vì bộ lọc được áp dụng sau khi EF Core thực hiện join, và nếu navigation là bắt buộc thì các bản ghi thiếu liên kết sẽ bị loại trừ khỏi kết quả. Bài học là luôn kiểm tra tính bắt buộc của navigation và xem xét sử dụng optional navigation hoặc chuyển bộ lọc sang cấp độ entity thay vì dựa vào join ngầm khi dùng Global Query Filters.
Why read it: Bài viết này giúp lập trình viên hiểu cách sử dụng Global Query Filters trong EF Core để triển khai soft delete, multi-tenancy và tránh lỗi rủi ro với navigation properties.
Answer 3 short questions to earn reward points for this article. Only do it if you want the points.
3 questions · under a minute · optional
Source: https://mwaseemzakir.substack.com/p/global-query-filters-in-ef-core. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Bối cảnh của bài viết đặt ra câu liệu có sự khác biệt giữa Clean Code và Clear Code, cùng …
.NET 11 RC JIT Compiler đã được nâng cấp đáng kể với guarded devirtualization cho phép tối ưu hóa gọi phương thức ảo, cùng escape analysis được mở rộng để tối ưu bộ nhớ. Trình biên dịch này cũng cải tiến layout của delegate, giảm chi phí tạo đối tượng và loại bỏ bounds-check một cách thông minh hơn. Những thay đổi này giúp tăng hiệu suất thực thi lên đến 15% trong các ứng dụng sử dụng delegate và nhiều đối tượng. Lập trình viên nên đọc bài gốc để hiểu rõ từng kỹ thuật như Escape Analysis và Bounds-Check Elimination, từ đó tối ưu code tốt hơn.
Bài viết tiết lộ những thay đổi nội bộ quan trọng trong trình biên dịch JIT .NET 11 giúp tăng hiệu năng ứng dụng .NET của bạn.
C# 15 giới thiệu tính năng closed hierarchies cho phép kiểm tra compile-time exhaustive switches trên cây lớp phân cấp. Tính năng này đòi hỏi sealed modifier phải được áp dụng một cách nhất quán, gây ra thách thức cho versioning trong thư viện. Microsoft xác nhận sự không tương ngược ngược này sẽ ảnh hưởng đến những ai kế thừa từ lớp có thể mở rộng. Các nhà phát triển cần cân nhắc kỹ khi thiết kế hệ thống phân cấp lớp để tận dụng lợi ích kiểm tra compile-time.
Bài viết này giúp lập trình viên hiểu cách tận dụng Closed Hierarchies trong C# 15 để tối ưu hóa switch statements và quản lý phiên bản code hiệu quả.
DuckDB 2.0 mang lại hiệu suất vượt trội với recursive CTEs nhanh hơn tới 90x so với phiên bản 1.5.5, kiểu dữ VARIANT xử lý nhanh hơn 6x so với JSON text, và async I/O trên S3 tăng 2.4x. Sự cải thiện đến từ tối ưu hóa engine xử lý, đặc biệt là việc bổ sung cache-aware execution plan và cải thiện cách quản lý memory cho variant data. Điều này cho thấy việc hiểu cách DuckDB lưu trữ và xử lý dữ liệu (đặc biệt với variant và variant types) sẽ giúp tối ưu hóa truy vấn tốt hơn. Bài viết cung cấp những insight thực tế về cách thiết kế schema dữ liệu để tận dụng tối đa hiệu năng mới mà không cần thay đổi code ứng dụng.
DuckDB 2.0 mang đến tốc độ vượt trội với cải tiến đáng kể trong CTE đệ quy, xử lý VARIANT và I/O bất đồng bộ, giúp lập trình viên tối ưu hiệu suất truy vấn dữ liệu.
Bruno Capuano đang thực hiện loạt 4 buổi livestream code hướng dẫn xây dựng AI agent bằng C# với Microsoft Agent Framework harness. Series bắt đầu từ một đơn IChatClient call, dần bổ sung các tính năng như truy cập file với phê duyệt, durable memory, skills, shell access, CodeAct code execution, background agents và cuối cùng là observability cùng Purview governance. Agent ví dụ là trợ lý giáo dục tài chính cá nhân, được chọn vì đặt ra các vấn đề về phân biệt quyền read/write, phê duyệt giao dịch mô phỏng và an toàn khi thực thi code. Tại thời điểm viết, 2/4 buổi đã phát trực tiếp trên kênh .NET YouTube và Microsoft Reactor, với bản ghi có sẵn sau đó.
Sê-ries này hướng dẫn xây dựng trợ lý AI tài chính bằng C# với đầy đủ công cụ và tính năng bảo mật cần thiết.
C# 15 và .NET 11 giới thiệu union types và closed class hierarchies để xử lý các giá trị có nhiều dạng JSON, minh họa qua trường hợp maxUnavailable của Kubernetes và payment-events. Union types khai báo một tập hợp các primitive, class hoặc interface cố định với switch statement đầy đủ do compiler kiểm tra, trong khi closed hierarchies hạn chế kế thừa để compiler xử lý các derived types đã biết là đầy đủ. System.Text.Json serialize union types mà không cần envelope hay discriminator, chỉ ghi JSON shape của case đang hoạt động, còn closed hierarchies có thể chọn discriminator-based polymorphism thông qua InferClosedTypePolymorphism. Cả hai tính năng đều tích hợp với Minimal APIs, MVC, SignalR's JsonHubProtocol, Blazor và OpenAPI, nhưng union types không hỗ trợ cho query strings, route values, headers hay form fields do các giá trị này chỉ bind chuỗi không có JSON parsing.
Bài viết giúp lập trình viên tận dụng union types và closed hierarchies trong C# để xử lý JSON đa dạng hiệu quả hơn trong ASP.NET Core.
Bài viết giải thích thiết kế hệ thống từ đơn giản (máy chủ đơn) đến phức tạp (hàng triệu người dùng), bao gồm API, cơ sở dữ liệu, caching, CDN, load balancing và hạ tầng sản xuất.
Bài viết giúp bạn hiểu rõ cách xây dựng cơ sở hạ tầng thực tế từ những nguyên tắc cơ bản nhất, từ đó tránh những sai lầm thường gặp khi mở rộng hệ thống khi còn mới mẻ.
EF Core 10 đã thay đổi cách thức hàm Contains gửi danh sách đến SQL Server với giới hạn 2,100 parameter, vượt qua ngưỡng này sẽ gây lỗi. Nguyên nhân kỹ thuật nằm ở SQL Server limiting number of parameters trong một câu lệnh. Hệ quả là query thất bại khi danh sách filter vượt quá 2,100 mục. Bạn có thể giải quyết bằng kỹ thuật SplitQuery hoặc AsEnumerable() nhưng cần benchmark để chọn phương án tối ưu cho trường hợp cụ thể.
Bài này giúp lập trình viên hiểu và giải quyết vấn đề giới hạn tham số khi lọc Entity Framework Core với danh sách lớn.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it