首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事务/ Database.BeginTransaction和IdentityManager

事务/ Database.BeginTransaction和IdentityManager
EN

Stack Overflow用户
提问于 2013-10-29 12:01:42
回答 1查看 4.2K关注 0票数 4

我有一个创建用户的复杂添加过程(并将角色+其他与用户相关的信息添加到其他表中)

在添加用户/角色或其他标识对象时,是否有人知道如何使用事务。我似乎无法访问"Database.BeginTransaction“

我有下面的UserManager类,我不知道如何访问基类“存储”

代码语言:javascript
复制
public class UserManager : UserManager<ApplicationUser>
{
    public UserManager()
    : base(new UserStore<ApplicationUser>(new ApplicationDbContext()))
    {
        //allows alphanumeric names in username
        UserValidator = new UserValidator<ApplicationUser>(this) { AllowOnlyAlphanumericUserNames = false };
    }

}

似乎没有办法访问UserManager.UserStore.Database.

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 12:24:42

ASP.NET标识框架的当前存储实现使用EntityFramework。DbContext是EF的核心,TransactionScope可以用于保存多个更改。

下面是EF代码第一DBContext和事务的一个示例

代码语言:javascript
复制
using(var scope = new TransactionScope(TransactionScopeOption.Required,
    new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted }))
{
    // Do something like Add a User 
    context.SaveChanges();
    // Do something like Add a User to Role
    context.SaveChanges();

    scope.Complete();
}

更新1: -为了访问DbContext.Database使用IdentityManager.Store.Context.Database -您可以使用相同的ConnectionString (而不是SqlConnection对象)跨多个DbContext使用相同的方法

此外,查看使用BeginTransaction的下一个链接。-> 如何在实体框架6 DbContext.Database.BeginTransaction中配置事务超时?

更新2:

使用EF6 BeginTransaction:处理事务(EF6以后)

在代码伪后面使用

代码语言:javascript
复制
ApplicationDbContext ctx = new ApplicationDbContext();
using (DbContextTransaction tran1 = ctx.Database.BeginTransaction())
{
    using (MyDbContext ctx2 = new MyDbContext(ctx.Database.Connection, false))
    {
        ctx2.Database.UseTransaction(tran1.UnderlyingTransaction);
    }
}

来自http://msdn.microsoft.com/en-us/data/dn456843

注意:在此场景中调用时,必须将contextOwnsConnection标志设置为false。这一点很重要,因为它通知实体框架,当连接完成时,它不应该关闭它

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19657667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档