同步使用项目 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);
}
}
最让我抓狂的是,用我的项目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);
}
}