MVC3 - 构建错误(Inconsistant accessibility)

use*_*931 0 c# asp.net-mvc-3

我在下面第14行收到错误:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using TimeDb.Models;

namespace TimeDb.Areas.Stock.Models
{
public class ProductAddViewModel
{
    private readonly DatabaseDataContext _db = new DatabaseDataContext();
    public SelectList ProductTypes;
    public Product Product { get; set; }

    public ProductAddViewModel()
    {
        Product = new Product();
        PopulateLists();
    }

    public ProductAddViewModel(int id)
    {
        Product = _db.Products.Single(p => p.Id == id);
        PopulateLists();
    }

    private void PopulateLists()
    {
        ProductTypes = new SelectList(_db.ProductTypes.OrderBy(pt => pt.Name), "Id", "Name");
    }
}
Run Code Online (Sandbox Code Playgroud)

}

现在,这只是在我尝试向Database.cs添加新字段后才出现的.

我试图做的是添加一个新的字段,我在数据库表中添加了.但错误出现在上面.

我尝试改变的部分数据库代码是:

 #region Product
[MetadataType(typeof(ProductMetaData))]
partial class Product
{

}

public class ProductMetaData
{
    [Required]
    [DisplayName("Name")]
    public string Name { get; set; }

    [Required]
    [DisplayName("Description")]
    public string Description { get; set; }

    [Required]
    [DisplayName("Retail Price")]
    public double RetailPrice { get; set; }

    [Required]
    [DisplayName("Threshold")]
    public int Threshold { get; set; }

    [Required]
    [DisplayName("Number To Keep In Stock")]
    public int NumberToKeepInStock { get; set; }

    [Required]
    [DisplayName("Shelf")]
    public string Shelf { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我补充说:

[DisplayName("disabled")]
public int disabled { get; set;}
Run Code Online (Sandbox Code Playgroud)

调整表格后,我很可能不知道调整数据库代码的最佳方法.但是当我删除上述修改时,它仍然显示相同的错误.

前进的最佳方式是什么?

谢谢

And*_*bel 5

你的Product班级不是public,这意味着它将被视为internal.当你暴露类型的属性Product作为public一类是本身的public属性将是当前组件外部可见.但是,该Product课程是internal不可见的.这是不一致的.

要么你的Product班级public或你的Product财产internal.

由于这是一个MVC视图模型,您可能希望使用该public选项使该属性对视图可见(视图在单独的程序集中编译,无法访问internal视图模型的属性).