gpt4 book ai didi

c# - EF Core IdentityDbContext 中的 SaveChangesAsync

转载 作者:行者123 更新时间:2023-11-30 21:31:12 25 4
gpt4 key购买 nike

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

我已经创建了 Database Context 及其接口(interface),如下所示:

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' does not implement interface member 'IAppDbContext.SaveChangesAsync()'

如果 AppDbContext 继承自 IdentityDbContextDbContext 则不会出现错误,但要使用 Identity,它应该继承自 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();
}

关于c# - EF Core IdentityDbContext 中的 SaveChangesAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53551560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com