繁体   English   中英

EF Core IdentityDbContext中的SaveChangesAsync

[英]SaveChangesAsync in EF Core IdentityDbContext

我正在尝试在ASP.NET Core应用程序中使用Entity Framework Core Identity

我创建了数据库上下文及其接口,如下所示:

public class AppDbContext : IdentityDbContext<AppUser>, IAppDbContext
{
    public AppDbContext (DbContextOptions<AppDbContext> options) : base(options)
    { }

    public DbSet<AppUser> AppUser { get; set; }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
    }
}

public interface IAppDbContext
{
    DbSet<AppUser> AppUser { get; set; }

    int SaveChanges();
    Task<int> SaveChangesAsync();
}

问题出在这里,它显示AppDbContext中的错误,指出

'AppDbContext'未实现接口成员'IAppDbContext.SaveChangesAsync()'

如果AppDbContext从继承DbContext insted的的IdentityDbContext错误不会出现,但使用的身份应该被继承IdentityDbContext

我该如何解决?

很奇怪,因为在两种情况下都应显示此错误。 无论如何, DbContext没有方法:

Task<int> SaveChangesAsync()

它具有方法:

Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken))

要避免这种情况,您应该包装DbContext.SaveChangesAsync方法:

public class AppDbContext : IdentityDbContext<AppUser>, IAppDbContext
{
    ...

    public Task<int> SaveChangesAsync() => base.SaveChangesAsync();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM