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

时间:2014-03-06 10:16:31

标签: asp.net-mvc entity-framework

我在上下文中添加了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; }
    }

2 个答案:

答案 0 :(得分:18)

默认情况下,

Demo没有访问修饰符,类只有internal,因此它不如DbSet Demo public更容易访问。此外,你应该调用DbSet Demos,以免混淆两者,从语义上讲,它拥有一组演示。

由于该集是公开的:

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

您还需要将Demo类公开:

public class Demo
{
     ....
}

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

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

这样您就不会将该集与类类型混淆。

答案 1 :(得分:0)

你应该公开你的模型, 所以只需将其更改为

public class Demo{}