LightSwitch + MySQL error: вложенные транзакции не поддерживаются - PullRequest
1 голос
/ 06 сентября 2011

Попытка подключиться и изменить существующие данные в таблице MySQL.Чтение работает нормально, но при попытке сохранить изменение возникает следующая ошибка.

Произошла ошибка при запуске транзакции в соединении провайдера.Смотрите внутреннее исключение для деталей.Внутреннее исключение: вложенные транзакции не поддерживаются.

Использование MySQL Connector Net 6.4.3

Ответ

Я нашел ответ,работает в моем случае.Добавьте приведенный ниже код к коду источника данных

using System.Transactions;

namespace LightSwitchApplication
{
    public partial class <ChangeThisToYourClassName>
    {
        private TransactionScope tx;

        partial void SaveChanges_Executed()
        {
            tx.Complete();
        }

        partial void SaveChanges_Executing()
        {
            tx = new TransactionScope(TransactionScopeOption.Required, 
                  new TransactionOptions { 
                      IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
                  });
        } 
    }
}

1 Ответ

0 голосов
/ 29 сентября 2011

Я могу подтвердить, что исправление работает.Я получил LightSwitch, работающий с MySQL, используя mysql connector.net версии 6.4.4.Однако, когда вы устанавливаете соединение и выбираете базу данных, вы получите такую ​​ошибку: «Поставщик не вернул строку ProviderManifestToken.»

Чтобы это исправить, нажмите вкладку «Дополнительно» в окне свойств соединения.Прокрутите вниз до раздела безопасности и выберите true для Persist Security Info.

Это позволяет платформе сущностей запрашивать таблицы.

Я создал тестовое приложение с этим и опубликовал на своем компьютере, и ятакже может выполнять полные операции crud!

Ура.

PS Исправление для вложенных транзакций здесь: http://archive.msdn.microsoft.com/KB2534087

...