Мы запускаем веб-сервисы, которые вызываются для заполнения и обновления нашей базы данных, в одной из функций, которую get EntityReactionType заполняет вызывающей стороне веб-сервиса с идентификаторами.
EntityReactionType имеет составной много-один ключ, состоящий из Entity и (suprise) ReactionType.
Эти идентификаторы заполняются правильными значениями, и затем я хочу обновить объект из базы данных, чтобы проверить некоторые значения, которые установлены в базе данных, кромеПользователь не знает о.В этом случае: IsStart и IsClosing.
Я делаю все это с помощью следующего кода: (это упрощенный фрагмент кода, но идея должна быть ясна)
Я вижу обновление, выполняющее SQL,это правильно и показывает, что это IsStart = False и IsClosing = True.
Тем не менее, когда я смотрю на значения объекта после Refresh IsStart = null и IsClosing = False;
//entityReactionTypeRepository.Merge(reaction.EntityReactionType);
entityReactionTypeRepository.Refresh(reaction.EntityReactionType);
if (reaction.IsResolved == true || reaction.EntityReactionType.CloseDispute == true)
{
reaction.IsResolved = true;
reaction.Invoice.IsDisputed = false;
}
Я закомментировал строку Merge, так как это то, что я нашел при поиске в Google, но ничего не изменил (идея состояла в том, что вы не можете обновить что-то, что не является транзитивным, но ничего не изменилось, SQL get все равно выполняется, но значения не обновляются)
В настоящее время я близок к тому, чтобы обойти эту проблему, которая просто создает отдельный критерий и выполняет его, но я знаю, что это возможно, вот так.
Привет,
Folkert