同步使用项目 class 作为数据库表

Using project class as a database tables synchronously

最让我抓狂的是,用我的项目classes作为数据库tables,即实现映射。这是详细信息:

这是我的产品table:

    public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
    public string Category { get; set; }
}

这是我数据库中的产品 table :

PRODUCTS
--------------------
PRODUCT_ID
PRODUCT_NAME
PRODUCT_DESCRIPTION
PRODUCT_PRICE
PRODUCT_CATEGORY

这是我的 DbContext class:

    public partial class ProductContext : DbContext
{

    public ProductContext()
        : base("Name=ProductContext")
    {
    }

    public DbSet<PRODUCTS> Product { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new ClassAllMap());
    }
}

这是我的映射器 class:

        public ClassAllMap()
    {
        // Primary Key
        this.HasKey(t => t.ProductID);

        // Table & Column Mappings
        this.ToTable("Product");
        this.Property(t => t.Name).HasColumnName("PRODUCT_NAME");
        this.Property(t => t.Description).HasColumnName("PRODUCT_DESCRIPTION");
        this.Property(t => t.Price).HasColumnName("PRODUCT_PRICE");
        this.Property(t => t.Category).HasColumnName("PRODUCT_CATEGORY");

    }

这是我的控制器class:

    public class ProductController : Controller
{
    private Entities3 repository;

    public ProductController(Entities3 productRepository)
    {
        this.repository = productRepository;
    }

    public ViewResult List()
    {
        List<Product> listProduct = new List<Product>();
        using (var db = new ProductContext())
        {

            var products = db.Product.ToList();

            return View(products);
        }

    }

}

问题是,在控制器 class 中(或项目中的任何地方)我想使用产品列表而不是 ProductContext.How,我缺少哪一点?提前致谢。

将您的代码更改为以下内容

public ViewResult List()
{
    List<Product> listProduct; 
    using (var db = new ProductContext())
    {
        listProduct = db.Product.ToList();
        return View(listProduct);
    }
}