Имеет ли смысл создавать новый объект, прежде чем пытаться сохранить объект
что я уже загрузил, но с более чем одним контекстом?
Нет. Но это показывает , что у вас есть проблема с дизайном в вашем приложении. Вам не нужно иметь дело с несколькими контекстами для одних и тех же объектов .
Я думаю, у вас есть проблемы с продолжительностью жизни ваших контекстов. Эту проблему решить нелегко, но вот статья , которая может вам помочь. Смотри также здесь .
Мое мнение таково, что контексты должны иметь максимально короткое время жизни. Долгосрочные контексты, как правило, являются плохой практикой , так как вы быстро столкнетесь с проблемами в вашем приложении (утечка памяти, проблемы при работе с многопоточностью или параллелизмом ... и т. Д.)
Если у вас 3-уровневая архитектура, вам действительно нужно предоставить сервисы без сохранения состояния и создать новый контекст для запроса . Если вы обращаетесь к базе данных напрямую из вашего приложения (двухуровневого приложения), например, приложения Winform, которое напрямую запрашивает БД, максимально сократит время жизни вашего контекста , если вы не можете делать запросы без сохранения состояния.
Последнее слово: создание новых контекстов требует очень небольших затрат и не приводит к проблемам с производительностью в 99% случаев.