Я пытался создать CMS с использованием .NET Core 2.1 с возможностью поэтапного изменения веб-контента, поэтому у меня есть три сайта в архитектуре моей системы:
- Сайт CMS - пользователь может предложитьизменения в веб-контенте через CMS, и эти изменения будут отправлены на промежуточный / производственный сайт после одобрения администратором.
- промежуточный интерфейс - веб-интерфейс для внутренних целей UAT отображает весь утвержденный / неутвержденный веб-контент.
- Производственный веб-интерфейс - веб-интерфейс, предназначенный для широкой публики, отображает только утвержденный веб-контент.
У меня есть три DbContext
экземпляра, введенных для достижения вышеуказанного:
CmsContext
- хранит изменения первого веб-контента, предложенные пользователем. StagingContext
- где промежуточный веб-интерфейс читает веб-контент ProductionContext
- гдеПроизводственный веб-интерфейс читает веб-контент
Проблема, с которой я столкнулся при попытке выполнить следующее (с включенной отложенной загрузкой):
var entity = await stagingContext.FindAsync(entityType, entityId);
productionContext.Update(entity);
await productionContext.SaveChangesAsync();
свойства навигации не обновляются так, как я ожидал.
Я также пробовал подход ChangeTracker.TrachGraph
, но он не перебирает свойства навигации.
IСледует понимать, что причина может заключаться в том, что даже при включенной отложенной загрузке к свойствам навигации никогда не было доступа, поэтому они не заполняются значениями для productionContext
для обновления.
Я прочитал в MicrosoftДо того, как я отправлю этот вопрос, я не смог найти правильный способ сделать это.Могу ли я получить вашу помощь в этом ребята?спасибо