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

时间:2015-11-21 11:43:08

标签: asp.net-mvc entity-framework mapping

让我疯狂的是,使用我的项目类作为数据库表,即实现映射。以下是详细信息:

这是我的产品表:

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

这是我数据库中的PRODUCTS表:

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

这是我的DbContext类:

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

这是我的mapper类:

        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");

    }

这是我的控制器类:

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

    }

}

问题是,在控制器类中,(或项目中的任何地方)我想使用Product List而不是ProductContext.How,这表明我错过了?提前致谢。

1 个答案:

答案 0 :(得分:0)

将您的代码更改为以下

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