Перезагрузите сущность и всю ассоциацию свойств навигации - DbSet Entity Framework

У меня проблема с обновлением ассоциации сущностей. Когда я получаю сущность с таким:

MyContext context = new MyContext();

Person myPerson = context.PersonSet.FirstOrDefault();
String myPersonName = myPerson.Name;
Address myPersonAddress = myPerson.Address;

У меня есть человек с ассоциацией с именем Address и свойством с именем Name. Если я вручную изменяю данные в базе данных, например, свойство Name, я должен использовать следующий код для перезагрузки моей сущности:

context.Entry(myPerson).Reload();

и у меня есть новое значение для имени. Но если я сделаю то же самое для адреса, это не сработает. Я думаю, что это потому, что Адрес является собственностью ассоциации. Мне нужно обновить это.

Как я могу сделать, чтобы принудительно перезагрузить ассоциацию адресов (и все другие ассоциации в классе Person)?

РЕДАКТИРОВАТЬ:

В этом же случае человек может иметь более одного адреса.

MyContext context = new MyContext();

Person myPerson = context.PersonSet.FirstOrDefault();
String myPersonName = myPerson.Name;
List<Address> myPersonAddresses = myPerson.Addresses;

В этом случае это не ссылка:

context.Entry(myPerson).Reference(p => p.Address).Load();
// Address will be populated with only the new address
// this isn't required because I use lazy loading

но коллекция:

context.Entry(myPerson).Collection(p => p.Addresses).Load();
// Address will be populated with old value and new value

Мне нужно использовать это для работы:

context.Entry(myPerson).Collection(p => p.Addresses).CurrentValue.Clear();
context.Entry(myPerson).Collection(p => p.Addresses).Load();

Но это не кажется хорошим решением сделать это для всех моих навигационных свойств!

Ответы на вопрос(4)

Ваш ответ на вопрос