这几天在学习asp.net mvc 一上来就被书中的什么依赖注入,什么单元测试搞的晕晕呼呼,根本就不理解,前天开始做书中的运动商店项目,一上来就遇到个大难题,书中的连接字符串的写法,跟以往在winform和WPF中的连接字符串不一样,网页展示不出来,没有抛异常,我估计是没有数据的缘故,但是,我的数据库中明明有数据啊。就索性照着书上的抄,还是不行,经过百度,书中所用的是loaclDB(一种轻量级的数据库)创建数据库,在创建时需要知道实例名,而这个实例名每个人可能不同,最快知道这个实例名方法是,直接创建一个MVC5的项目,在web.config中复制就行了。
今天做完了商品展示页,但是不明白其中的运行原理。总结一下程序运行思路:
创建product类
public class Product { public int ProductID { get; set; } public string ProductName { get; set; } public string Description { get; set; } public string Category { get; set; } public decimal Price { get; set; } }
创建IProductRespository接口 商品仓库
public interface IProductRespository { IEnumerable<Product> Products { get; } }
类太多了,不贴了
测试程序,首先应该激活controller--->而在书上的这个程序中productController有个构造函数
public ProductController(IProductRespository productRespository) { this.respository = productRespository; }
在下面的 public ViewResult List 方法所用的模型都是从IProductRespository接口的Products熟悉中得到,既然激活productController,接下来应该执行它的构造函数,我猜测应该是这个东西 kernel.Bind<IProductRespository>().To<EFPoductRepository>();随后执行下面这个类
public class EFPoductRepository : IProductRespository { private EFDbcontext Context = new EFDbcontext(); public IEnumerable<Product> Products { get { return Context.Products; } } }
接着执行
public class EFDbcontext:DbContext { public DbSet<Product> Products { get; set; } }
下面应该回到了productController中去执行List方法