Несогласованная доступность: тип свойства в DbContext

я добавил Dbset в контексте, т. е.

 public Dbset<Demo> Demo{ get; set; }

, но я получаю ошибки компиляции здесь, т. е.

Error   1   Inconsistent accessibility: property type 'System.Data.Entity.DbSet<MVC.Model.Demo>' is less accessible than property 'MVC.Model.Demo'  D:Files/project 210 34  MVC.Data

вот моя модель:-

class Demo
    {
        [Key]
        [Display(Name = "ID", ResourceType = typeof(Resources.Resource))]
        public long Id { get; set;}

        [Display(Name = "CountryID", ResourceType = typeof(Resources.Resource))]
        public long CountryId { get; set; }

        [Display(Name = "RightID", ResourceType = typeof(Resources.Resource))]
        public long RightId { get; set; }

        [Display(Name = "Amount", ResourceType = typeof(Resources.Resource))]
        public double Amount { get; set; }
    }

1 ответов


Demo не имеет модификатора доступа и классы internal по умолчанию, поэтому он менее доступен, чем DbSet Demo что это public. Кроме того, вы, вероятно, должны позвонить DbSet Demos чтобы не путать два и так как семантически он содержит набор демо.

так как набор является общедоступным:

 public DbSet<Demo> Demo { get; set; }

Вам также необходимо сделать демонстрационный класс общедоступным:

public class Demo
{
     ....
}

Как уже упоминалось, я также предлагаю вам изменить значение:

public DbSet<Demo> Demos { get; set; }

чтобы вы не путали набор с типом класса.