Asp.net mvc 4 联合WebSecurity.CreateUser和DbContext操作升级到DTC

Asp.net mvc 4 联合WebSecurity.CreateUser和DbContext操作升级到DTC,asp.net-mvc-4,entity-framework-5,simplemembership,msdtc,Asp.net Mvc 4,Entity Framework 5,Simplemembership,Msdtc,最近我遇到了一个小故障,当时我试图用一个事务来结束一些涉及WebSecurity和DbContext的操作 在我的Asp.net MVC 4应用程序中,我尝试通过以下方式注册新用户: var transactionOptions = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.MaximumTimeout }; using

最近我遇到了一个小故障,当时我试图用一个事务来结束一些涉及WebSecurity和DbContext的操作

在我的Asp.net MVC 4应用程序中,我尝试通过以下方式注册新用户:

var transactionOptions = new TransactionOptions
{
    IsolationLevel = IsolationLevel.ReadCommitted,
    Timeout = TransactionManager.MaximumTimeout
};
using (var transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions))
{
    var confirmationToken = WebSecurity.CreateUserAndAccount(
    vm.Email,
    vm.Password,
    new
    {
        AccountCreationDate = DateTime.Now,
        City = vm.City,
        (...)
    },
    true);

    Roles.AddUserToRole(vm.Email, "Client");

    // Some other job on DbContext in Repository
    var userRepository = new UserRepository();
    userRepository.AssignData(vm.Email);

    transactionScope.Complete();
}

如您所见,我正在尝试创建一个用户帐户和成员条目,分配一个角色,然后通过存储库在EF5 DbContext上执行一些额外的操作

这段代码被包装在一个try-catch块中,为了简洁起见,这里不包括它

我的问题来了:是否有可能将所有这3次点击都打包到数据库中(分别通过WebSecurity、Roles和Repository),而不让它升级到DTC

我使用的是SQL Server 2012,一个DB和相同的连接字符串(如果有帮助的话)