В двух словах (из того, что я понимаю):
SaveOptions.DetectChangesBeforeSave
: это значение по умолчанию. Когда вы делаете ObjectContext.SaveChanges () , метод DetectChanges () вызывается для синхронизированных объектов присоединения в OSM.
SaveOptions.AcceptAllChangesAfterSave
: когда вы делаете ObjectContext.SaveChanges () , вызывается метод AcceptAllChanges () - который является внутренностями OSM, где сущности в графе итерированы, адреса и установлены на неизмененные / отключенные.
SaveOptions.None
: Когда вы делаете ObjectContext.SaveChanges () , изменения сохраняются сразу - никакой синхронизации вообще нет. Все, что находится на графике, - это то, что будет сохранено.
По моему опыту, я не изменил это - я оставил его по умолчанию (DetectChangesBeforeSave).
Иногда с POCO я слышал, что вам нужно явно позвонить DetectChanges
, но я никогда не видел рекомендации / решения, чтобы изменить SaveOptions на none.
Вы уверены, что решением в этом вопросе является установка SaveOptions на none? Возможно, вам следует предоставить подробную информацию (или задать отдельный вопрос) об ошибке, которую вы получаете, поскольку подобное изменение повлияет на весь ваш уровень персистентности.