EF5 Как получить список свойств навигации для объекта домена

Я работаю над решением EF 5 Code-First и пытаюсь обновить существующую сущность модифицированной, используя шаблон Repository:

    public void UpdateValues(T originalEntity, T modifiedEntity)
    {
        _uow.Context.Entry(originalEntity).CurrentValues.SetValues(modifiedEntity);

Мой упрощенный объект домена выглядит так:

public class PolicyInformation : DomainObject
{
     //Non-navigation properties
     public string Description {get;set;}
     public bool Reinsurance {get;set;}
     ...
     //Navigation properties
     LookupListItemFormType FormType {get;set;}
     ...
}

У меня проблема в том, чтоCurrentValues.SetValues(modifiedEntity); Кажется, что метод обновляет только свойства скалярного и сложного типа, но не свойства Navigation. Я видел, как это происходит со многими людьми, и до сих пор не знаю, почему это так. Тем не менее, я понял, что если я установлю эти свойства навигации вручную после выполнения моегоUpdateValues все отлично работает

            _policyInfoRepo.UpdateValues(existingPolicyInfo, info);
            existingPolicyInfo.FormType = info.FormType;

Вопрос в том, что я использую общий репозиторий: как я могу получить список свойств навигации в моем доменном объекте? Возможно, через linq, рефлексию или любым другим способом, чтобы мой метод обновления в моем репозитории мог проходить через них и устанавливать их автоматически?

Что-то вроде этого:

    public void UpdateValues(T originalEntity, T modifiedEntity)
    {
        //Set non-nav props
        _uow.Context.Entry(originalEntity).CurrentValues.SetValues(modifiedEntity);
        //Set nav props
        var navProps = GetNavigationProperties(originalEntity);
        foreach(var navProp in navProps)
        {
           //Set originalEntity prop value to modifiedEntity value
        }

Спасибо!

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

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