Как обеспечить создание прокси при использовании шаблона репозитория с платформой сущностей?

У меня есть этот метод в моем классе SurveyController:

public ActionResult AddProperties(int id, int[] propertyids, int page = 1)
{
    var survey = _uow.SurveyRepository.Find(id);
    if (propertyids == null)
        return GetPropertiesTable(survey, page);

    var repo = _uow.PropertySurveyRepository;

    propertyids.Select(propertyid => new PropertySurvey
                {
                    //Setting the Property rather than the PropertyID 
                    //prevents the error occurring later
                    //Property = _uow.PropertyRepository.Find(propertyid),
                    PropertyID = propertyid,
                    SurveyID = id
                })
                .ForEach(x => repo.InsertOrUpdate(x));
    _uow.Save();

    return GetPropertiesTable(survey, page);
}

GetPropertiesTable отображает свойства, но PropertySurvey.Property помечается как виртуальный, и я создал объект с помощью оператора new, поэтому прокси-сервер для поддержки отложенной загрузки никогда не создавался, и при обращении к нему он становится пустым. Когда у нас есть доступ напрямую к DbContext, мы можем использовать метод Create дляявно создать прокси, Но у меня есть единица работы и шаблон хранилища. Я думаю, что я мог бы представить метод context.Create через метод repository.Create, и затем мне нужно помнить, чтобы использовать это вместо оператора new, когда я добавляю сущность. Но не лучше ли заключить проблему в мой метод InsertOrUpdate? Есть ли какой-нибудь способ обнаружить, что добавляемый объект не является прокси, когда он должен быть, и заменить прокси? Это мой метод InsertOrUpdate в моем базовом классе репозитория:

    protected virtual void InsertOrUpdate(T e, int id)
    {
        if (id == default(int))
        {
            // New entity
            context.Set<T>().Add(e);
        }
        else
        {
            // Existing entity
            context.Entry(e).State = EntityState.Modified;
        }
    }

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

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