2014-03-06 62 views
6
屬性類型

我已經在上下文中添加Dbset即可訪問性不一致:在的DbContext

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; } 
    } 

回答

15

Demo默認情況下沒有訪問修飾符,類別爲internal,所以它不是比DbSetDemo這是public可訪問。此外,您應該撥打DbSetDemos以免混淆兩者,並且從語義上講,它包含一組演示。

由於集衆:

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

你需要做Demo類公衆以及:

public class Demo 
{ 
    .... 
} 

如前所述,我也建議你更改設置爲:

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

這樣您就不會將該集合與類類型混淆。

+0

如果我從上面的代碼中刪除「公共」,那麼它會成功編譯,但是然後我無法從控制器頁面訪問分配模型。那麼該怎麼做? – user3206357

+0

@ user3206357 - 您需要公開分配。 – acarlon

+0

@ user3206357 - 查看更新。 – acarlon