Setting up Auditable Entities with EF Core
Setting up Auditable Entities with EF CoreIn this week’s newsletter, I want to introduce you to the concept of auditable entities and how you can implement it with Entity Framework Core.
In this week’s newsletter, I want to introduce you to the concept of auditable entities and how you can implement it with Entity Framework Core. For starters, Auditable Entities is a best practice applied on each entity to track changes applied on it. These are nothing but meta columns apart from the attributes, which store information about when the entity was created, updated and the user who did it etc. Maintaining such information helps us keep trail of how these entities have changed over time. However, manually inserting or updating these fields can be painful, as there can be a chance of human error. To automate this process, we can design a system with which we can automatically store such information without having to manually inserting any such value. How do we do that? EF Core exposes a property ChangeTracker which "Provides access to information and operations for entity instances this context is tracking". When we call ChangeTracker.Entities<TClass>() with a type parameter, it returns all the entities currently tracked which are of the type passed. In our case, we passed AuditableEntity which results in all entities which are of type AuditableEntity. Remember that Item extends AuditableEntity so it qualifies the "is-a" relationship. So we get all the Item objects. Since User extends BaseEntity and NOT AuditableEntity, User is not a AuditableEntity and so those entities are not returned. Simple! Within the loop, we see if the record is being added or updated based on the State - EntityState.Added or EntityState.Modified. If it is INSERT we set values for Created and CreatedBy. If UPDATE we set values of LastModified and ModifiedBy. I have explained this in much detail with an illustrating example. The link to the article is here - https://referbruv.com/blog/how-to-setup-audit-fields-using-ef-core/ I hope this article will help you get a better understanding of the concept and help you know something new. I’ll see you next week! |
Older messages
How to Integrate Swagger UI with Spring Boot 3
Wednesday, March 6, 2024
In this week's newsletter, let us see how we can implement SwaggerUI and OpenAPI specification for a simple Spring Boot 3 RESTful API ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Implementing CORS in an ASP.NET Core Web API
Wednesday, March 6, 2024
In this detailed guide, let's talk about what is CORS and how do we enable CORS in ASP.NET Core with an illustrating example ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
How to use SignalR with .NET 6 and new Digital Product Announcement!
Monday, May 29, 2023
Hello there, Hope you are doing good. This week I wanted to recap on one of the most interesting posts I've ever worked on - Real time communication. How to use SignalR with ASP.NET Core Angular
How to create Social Logins with ASP.NET Core
Monday, May 22, 2023
Hello there, Hope you are doing good. Social Logins are a convenient way of logging in users into system. Users don't need to remember all the logins they have for different applications and
Dockerizing ASP.NET Core Web API and Catching HTTP Errors Globally in Angular
Monday, May 15, 2023
Hello there, Hope you are doing good. For this week's newsletter I want to share with you two articles - One on the client side (Angular) and other on DevOps (Docker). I. How to deploy ASP.NET
You Might Also Like
The #OptOut Writing Contest is Back 🔥
Tuesday, July 2, 2024
Enter Now and Compete for $6000 in Prizes!! ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Your Apple devices might be vintage now
Tuesday, July 2, 2024
Best July 4th tech sales; End of ChromeOS Flex?; Nasty OpenSSH flaw -- ZDNET ZDNET Tech Today - US July 2, 2024 placeholder Apple says your device may now be vintage or obsolete - here's why and
DeveloPassion's Newsletter #171 - Not the future you want
Tuesday, July 2, 2024
Edition 171 of my newsletter, discussing Knowledge Management, Knowledge Work, Zen Productivity, Personal Organization, and more! Sébastien Dubois DeveloPassion's Newsletter DeveloPassion's
Anthropic wants to lead the AI safety movement
Tuesday, July 2, 2024
Anthropic to fund 3rd-parties to evaluate AI security and societal effects View this email online in your browser By Rebecca Bellan Tuesday, July 2, 2024 Welcome to TechCrunch AM! This morning, we'
LW 140 - I made $1,436,828 with 2 Shopify Apps
Tuesday, July 2, 2024
I made $1436828 with 2 Shopify Apps Shopify Development news and articles Issue 140 - 07/02/2024 Read Online Liquid Weekly All Things Shopify Development I made $1436828 with 2 Shopify Apps I made
⚙️ AI won’t take your job; employers using AI will
Tuesday, July 2, 2024
Plus: LLMs aren't good at abstractive reasoning
ECMAScript 2024; new Set methods; JS performance initiative; rounding errors; benchmarking tool
Tuesday, July 2, 2024
We have 10 links for you - Stay up-to-date on JavaScript and tools This Week In React - Keeps senior React devs up to date thisweekinreact.com Partner We keep over 40k mid/senior React devs up-to-date
Chinese Hackers Exploiting Cisco Switches Zero-Day to Deliver Malware
Tuesday, July 2, 2024
THN Daily Updates Newsletter cover [Watch LIVE] The AI Revolution in Vulnerability Management: 2025 Trends for Security Leaders Transform Your Team: Learn How Security Champions Turn Developers into
A Comprehensive Guide to DORA Readiness for Financial Services
Tuesday, July 2, 2024
Identity Zero Trust Framework A down-to-earth, honest exploration of how to meet the compliance regulations of the EU's Digital Operational Resilience Act (DORA). If you are doing business in the
Post from Syncfusion Blogs on 07/02/2024
Tuesday, July 2, 2024
New blogs from Syncfusion Easily Export .NET MAUI DataGrid to Specific PDF Page By Jayaleshwari N This blog explains how to easily export the Syncfusion .NET MAUI DataGrid to a specific page in a PDF