获取实体框架表中的所有行

时间:2020-06-18 09:55:15

标签: asp.net entity-framework

我有一个称为特权请求的模型:

public class PrivilegeRequests
    {
        public string UserEmail { get; set; }
        public string AdminEmail { get; set; }
    }

我已经创建了该模型的Db上下文:

public class PrivilegeRequestsDbContext : DbContext
    {
        public PrivilegeRequestsDbContext(DbContextOptions options) : base(options)
        {
        }

        DbSet<PrivilegeRequests> Requests
        {
            get; set;
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<PrivilegeRequests>()
                .HasKey(c => new { c.UserEmail, c.AdminEmail });
        }
    }

我想在控制器中获取此表中的所有行。 我已经在控制器中初始化了上下文:

private PrivilegeRequestsDbContext _context;
        public AdministrationController(RoleManager<IdentityRole> roleManager,UserManager<IdentityUser> userManager, PrivilegeRequestsDbContext context)
        {
            this.roleManager = roleManager;
            this.userManager = userManager;
            _context = context;
        }

问题在于,当我键入_context时,在操作中。我无法访问“请求”表,所以我不知道问题出在哪里。

1 个答案:

答案 0 :(得分:0)

您需要声明Requests为公开,才能通过_context.Requests访问它们:

public class PrivilegeRequestsDbContext : DbContext
{
     ....

    public DbSet<PrivilegeRequests> Requests
    {
        get; set;
    }
}

班级成员is private的默认访问修饰符:

默认情况下,类和结构成员(包括嵌套的类和结构)具有私有访问权限。不能从包含类型的外部访问私有嵌套类型。