EF Core and Domain-Driven Design
Data persistence is important to your application workflow even when focused on your domain. This course will guide you through using Entity Framework Core effectively to persist data from solutions designed using Domain-Driven Design concepts.
What you'll learn
While DDD is focused on the domain, data persistence is still important to your application workflow and if you are using EF Core, it is important to understand how EF Core maps nicely designed domain models. In this course, EF Core and Domain-Driven Design, you’ll learn to persist tactical designs of DDD with EF Core. First, you’ll explore why persistence is relevant to DDD and get a walk through of analyzing a real-world domain. Next, you’ll discover how EF Core maps by default as well as how to help EF Core with mapping aggregates. Finally, you’ll learn how to organize data related logic using skills from DDD including sharing data across bounded contexts with APIs and messaging. When you’re finished with this course, you’ll have the skills and knowledge of EF Core needed to persist your lovely domain models.
Table of contents
- Introduction and Overview 2m
- Reviewing the Overall Solution in Visual Studio 1m
- Examining a Value Object Record 3m
- Continuing with Author Value Object 3m
- Digging into Contract Version 9m
- Inspecting the Contract Aggregate Root 3m
- Creating Revisions and Other Aggregate Logic 5m
- Running Unit Tests on the Aggregate 6m
- Review and Resources 2m
- Introduction and Overview 1m
- Testing with the SQL Server Provider vs. an In-memory Stand-in 1m
- Setting Up the Tests 2m
- Ensuring Basic Data is Getting Stored Correctly 6m
- Using JSON to Test Persistence of a Full Aggregate 3m
- Preparing to Test Contract Revisions 3m
- Interpreting the EF Core’s Weird Exception Message 3m
- Refactoring the Domain and Adjusting the Mappings 7m
- Exploring Some More Revision Integration Tests 4m
- Review and Resources 2m
- Making Sense of Using an ORM with NoSQL 3m
- Changing the Provider and Removing Incompatible Mappings 2m
- Embedding Value Objects and Related Data in JSON Documents 2m
- Using Integration Tests to Validate the CosmosDB Mapping 4m
- Controlling How Objects Are Embedded 5m
- Setting Expectations for Querying Related Data 3m
- Adjusting the Final Tests for Cosmos 4m
- Effortlessly Storing Dictionaries and Lists of Primitives 5m
- Review and Resources 3m
- Introduction and Overview 2m
- Repositories in DDD and EF Core 3m
- Understanding Needs and Considerations for Our Contract Service 3m
- Exploring the Contract Service 7m
- Testing the Contract Service 2m
- Implementing Contract Search 7m
- Communicating Between Bounded Contexts 5m
- Leveraging SaveChanges in an Events and Messaging Workflow 7m
- Defining Guard Keys with Value Objects 7m
- Review and Resources 3m