0

以下の 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");
    }
}

}

これは、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; }

}

追加した:

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

ほとんどの場合、テーブルを調整した後、データベース コードを調整する最善の方法を認識していません。しかし、上記の修正を削除しても、同じエラーが表示されます。

今後の最善の方法は何ですか?

ありがとう

4

1 に答える 1

5

あなたのProductクラスは ではありませんpublic。つまり、 として扱われinternalます。それ自体がクラスであるProductasの型のプロパティを公開すると、そのプロパティは現在のアセンブリの外部に表示されます。ただし、クラスは表示されません。それが矛盾です。publicpublicProductinternal

ProductクラスpublicまたはProductプロパティを作成しますinternal

これは MVC ビュー モデルであるため、publicオプションを使用してプロパティをビューに表示することをお勧めします (ビューは別のアセンブリでコンパイルされinternal、ビュー モデルのプロパティにアクセスできません)。

于 2012-07-05T11:58:07.560 に答える