簡體   English   中英

Asp.net 內核為身份創建接口

[英]Asp.net core create interface for identity

我正在創建一個 asp.net 核心 web 應用程序,我正在嘗試為我的數據庫上下文創建一個接口,以便在我的業務邏輯層中使用它。 界面制作如下:

public interface IAppDbContext
{
    public DbSet<Country> Countries { get; set; }
    public DbSet<City> Cities { get; set; }
    Task<int> SaveChangesAsync(CancellationToken cancellationToken);
}

接口的實現如下:

public class AppDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string> , IAppDbContext
    {
        public AppDbContext(DbContextOptions<AppDbContext> options)
            : base(options)
        {

        }

        public DbSet<Country> Countries { get; set; }
        public DbSet<City> Cities { get; set; }
    }

問題是,當我注入接口並嘗試使用_context.Users時,它會顯示以下錯誤:

'IAppDbContext' does not contain a definition for 'Users' and no accessible extension method 'Users' accepting a first argument of type 'IAppDbContext' could be found (are you missing a using directive or an assembly reference?).

我知道在實現上, _context.Users來自父 class IdentityDbContext ,但是我怎樣才能將它添加到界面中以便我可以使用它? 謝謝!

您可以將用戶添加到您的界面。 嘗試通過以下方式更新它:

public interface IAppDbContext
{
    public DbSet<Country> Countries { get; set; }
    public DbSet<City> Cities { get; set; }
    DbSet<ApplicationUser> Users { get; set; }
    Task<int> SaveChangesAsync(CancellationToken cancellationToken);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM