可访问性不一致:DbContext中的属性类型

use*_*357 8 asp.net-mvc entity-framework

我在Context中添加了Dbset

 public Dbset<Demo> Demo{ get; set; }
Run Code Online (Sandbox Code Playgroud)

但我在这里得到编译错误,即

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
Run Code Online (Sandbox Code Playgroud)

这是我的模特: -

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; }
    }
Run Code Online (Sandbox Code Playgroud)

aca*_*lon 21

Demo有没有访问修饰符和类internal默认情况下,所以它是用不到的访问DbSet Demopublic.此外,你应该调用它,DbSet Demos以免混淆两者,从语义上讲它拥有一组演示.

由于该集是公开的:

 public DbSet<Demo> Demo { get; set; }
Run Code Online (Sandbox Code Playgroud)

您还需要公开Demo类:

public class Demo
{
     ....
}
Run Code Online (Sandbox Code Playgroud)

如上所述,我还建议您将设置更改为:

public DbSet<Demo> Demos { get; set; }
Run Code Online (Sandbox Code Playgroud)

这样你就不会将集合与类类型混淆.