我正在尝试将ApplicationDbContext制作成一个接口,该接口扩展了IdentityDbContext。
但是使用以下代码,编译器会报错。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>,
IApplicationDbContext
{
public ApplicationDbContext()
: base("AppContext")
{
}
// Should I add below line? without any unwanted behavior?
// public DbSet<ApplicationUser> User { get; set;}
public DbSet<Book> Books { get; set; }
}
我的界面将会是
public interface IApplicationDbContext : IDisposable
{
// Should I add below line?
// DbSet<ApplicationUser> User { get;}
DbSet<Book> Books { get; }
int SaveChanges();
}
这种方法的问题在于我失去了来自IdentityDbContext.Users的'Users'访问权限
private ApplicationDbContext ctx = new ApplicationDbContext();
ctx.Users.somthing() works
但是使用以下代码,编译器会报错。
private IApplicationDbContext ctx = new ApplicationDbCOntext();
ctx.Users.something..
IApplicationDbContext没有定义'Users',也没有扩展方法'Users'...
我认为我在这里缺少一个关键概念。
你能帮助我吗?
IApplicationDbContext
的类创建单元测试时,如果其返回值也容易进行模拟,则创建虚假/模拟实现要容易得多。 - Preston Guillot