让我疯狂的是,使用我的项目类作为数据库表,即实现映射。以下是详细信息:
这是我的产品表:
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,这表明我错过了?提前致谢。
答案 0 :(得分:0)
将您的代码更改为以下
public ViewResult List()
{
List<Product> listProduct;
using (var db = new ProductContext())
{
listProduct = db.Product.ToList();
return View(listProduct);
}
}