我在下面第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)
调整表格后,我很可能不知道调整数据库代码的最佳方法.但是当我删除上述修改时,它仍然显示相同的错误.
前进的最佳方式是什么?
谢谢
你的Product
班级不是public
,这意味着它将被视为internal
.当你暴露类型的属性Product
作为public
一类是本身的public
属性将是当前组件外部可见.但是,该Product
课程是internal
不可见的.这是不一致的.
要么你的Product
班级public
或你的Product
财产internal
.
由于这是一个MVC视图模型,您可能希望使用该public
选项使该属性对视图可见(视图在单独的程序集中编译,无法访问internal
视图模型的属性).