проблема транзакции с сущностью 4 - PullRequest
1 голос
/ 29 сентября 2010

Я пытаюсь реализовать транзакцию с помощью Entity Framework 4. Из того, что я прочитал, приведенный ниже код является правильным. SaveChanges работает нормально, но как только я нажимаю на первый вызов ExecuteFunction, я получаю следующее исключение:

Основной поставщик не удалось Открыто. ---> System.Transactions.TransactionManagerCommunicationException: Доступ к сети для распределенных Менеджер транзакций (MSDTC) был отключен. Пожалуйста, включите DTC для доступ к сети в безопасности Конфигурация для MSDTC с использованием Компонент Услуги Административный инструмент.

Я вошел в систему на сервере базы данных и не вижу службы с именем диспетчера распределенных транзакций, но вижу координатора распределенных транзакций, и он запущен. Я не уверен, что мне нужно изменить, чтобы это работало. Кто-нибудь знает? Спасибо.

Вот код.

using (var h = new WhaleEntities(ConnectionHelper.DBConnectString))
{
    using (TransactionScope ts = new TransactionScope())
    {
        h.Sites.AddObject(s);
        h.SaveChanges(SaveOptions.DetectChangesBeforeSave); 
        retval = s.SiteID;

        h.ExecuteFunction("UpdateSiteInterfaceList", new ObjectParameter("pSiteID", retval), new ObjectParameter("pList", "10"));
        h.ExecuteFunction("UpdateSiteInterfaceRequiredList", new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "Email"));
        h.ExecuteFunction("UpdateSiteInterfaceAlwaysShownList", new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "10"));
        h.ExecuteFunction("UpdateSiteInterfaceAlwaysRequiredList",new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "Email"));

        ts.Complete();

        //changes must be accepted manually once transaction succeeds.
        h.AcceptAllChanges();
    }
}

1 Ответ

1 голос
/ 29 сентября 2010
...