Now that you know how to add, change, and delete entities, it’s time to look at how we change relationships between those entities. Your domain model exposes relationships using navigation properties and, optionally, a foreign key property. Changing a relationship is achieved by changing the values assigned to those properties.
Given that a relationship can be represented by up to three
properties (two navigation properties and a foreign key property), you may
be wondering if you need to update all three just to change the
relationship. Updating just one of these properties is enough to let
Entity Framework know about the change. It is also fine to update more
than one of the properties if you want to, provided that the changes
represent the same change. When you call
SaveChanges, Entity Framework will take care of
updating the rest of these properties for you; this is known as
relationship fix-up. Rather than waiting for
SaveChanges to fix up the properties, you can
trigger this fix-up on demand by calling
DetectChanges or have it happen in real-time by
using change tracking proxies. Both of these concepts are described later
in this chapter.
While the basics of changing relationships are quite simple, there are a lot of intricate details to be familiar with as you get into more advanced relationship scenarios. These intricacies are not specific to the DbContext API and are well beyond the scope of this book.
You can find a detailed look at relationships ...