Как запустить два контекста Entity Framework внутри TransactionScope без MSDTC?
Эта проблема не является легко воспроизводимой в простом примере здесь, но было интересно, если у кого-то есть опыт и советы, вот проблема:
с помощьюEntity Frameworkесть много точек в приложении, где (1) данные записываются в некоторыеюридическое лицо стол, например Клиент, (2) данные пишутсяистория Таблицаи то и другое из этих действий используйте Entity Framework, ОДНАКО, они используютразные контекстыэти действия должны быть как водна транзакциято есть, если один не пишет, другой не должен писать и т. д.Я могу обернуть их с TransactionScope,как это:
using (TransactionScope txScope = new TransactionScope()) {
...
}
но это дает мне:
Координатор распределенных транзакций Microsoft (MSDTC) отключен для сетевых транзакций.
Администратор нашей базы данных сказал мне, чтоMSDTC отключен по выбору ине может быть установлен.
Поэтому я делаю изменения, пытаясь создать свое собственное EntityConnection с MetadataWorkspace с идеей, чтокаждый контекст будет использовать тот же EntityConnection, Тем не менее, это почти невозможно попытаться заставить его работать, например, в настоящее время я продолжаю получать вышеуказанную ошибку, хотя теоретически оба контекста используют EntityConnection. Трудно понять, где и почему Entity Framework требует MSDTC, например.
Кто-нибудь пошел по этому пути раньше, есть опыт или примеры кода, чтобы поделиться?