DbContext对象不会看到它的属性 - DbSets

时间:2017-05-11 21:24:55

标签: c# entity-framework

我的Web API C#应用程序具有以Code First Way构建的实体框架。 我有一个DbContext类,如下所示:

public class AppDbContext : DbContext
{
    public AppDbContext() 
        : base("name=AppDbContext")
    {
    }

    public DbSet<User> Users { get; set; }
    public DbSet<Transaction> Transactions { get; set; }
    public DbSet<MenuItem> MenuItems { get; set; }
    public DbSet<Restaurant> Restaurants { get; set; }

    public static AppDbContext Create()
    {   
        return new AppDbContext();
    }

}

在Controller中,我将DbContext称为变量。

public class AppController : ApiController
{
    private DbContext _context;

    public AppController()
    {
        _context = new AppDbContext();
    }

    protected override void Dispose(bool disposing)
    {
        _context.Dispose();
    }

    [HttpPost]
    public HttpResponseMessage Authorize(User user)
    {
        User currentUser = _context.Users......

在控制器变量的最后一行_context无法识别它的属性。 No DbSets in list of properties

如何使其发挥作用?

1 个答案:

答案 0 :(得分:5)

将字段类型从基础DbContext更改为AppDbContext

private AppDbContext _context;

DbSet属性在子类中声明,因此通过引用基类类型无法显示它们。