开发环境为VS 2013 Ultimate,首先新建一个名为Guestbook的MVC项目,具体过程就不表啦,因为我比较懒 哈哈!
一、默认模板分析(开发工具会自动创建一个可以运行的项目):
1.控制器:继承于Controller基类的类,其中的方法(称为动作即Action)对应于某个URL。
1 namespace Guestbook.Controllers 2 { 3 public class HomeController : Controller // 继承于Controller 4 { 5 public ActionResult Index() 6 { 7 return View(); 8 } 9 10 public ActionResult About() 11 { 12 //ViewBag本质上是一个字典, 13 //它提供了一种存储数据的方式,这些数据随后能够在视图中进行访问 14 ViewBag.Message = "Your application description page."; 15 16 return View();//指示应该渲染的视图 17 } 18 19 public ActionResult Contact() 20 { 21 ViewBag.Message = "Your contact page."; 22 23 return View(); 24 } 25 } 26 }
2.注册路由:RegisterRoutes方法定义一个将URL模式映射到控制器或动作的路由。
1 namespace Guestbook 2 { 3 public class RouteConfig 4 { 5 public static void RegisterRoutes(RouteCollection routes) 6 { 7 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");//框架不必处理含有.axd扩展文件名的任何路径 8 9 routes.MapRoute( 10 name: "Default",//路由名 11 url: "{controller}/{action}/{id}",//URL模式 12 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }//路由默认值 13 ); 14 } 15 } 16 }
二、Code First方式创建SQL Server数据库:
1.添加模型:即数据库中对应的数据表
1 namespace Guestbook.Models 2 { 3 public class GuestbookEntry 4 { 5 public int Id { get; set; } 6 public string Name { get; set; } 7 public string Message { get; set; } 8 public DateTime DateAdded { get; set; } 9 } 10 }
2.使用ORM工具--Entity Framework与数据库交互:
1).添加一个继承于DbContext基类的类:
1 namespace Guestbook.Models 2 { 3 public class GuestbookContext:DbContext 4 { 5 public GuestbookContext() 6 { 7 } 8 9 public DbSet<GuestbookEntry> Entries { get; set; } 10 } 11 }
该上下文类同时定义了一个单独的属性Entries,是将其作为在GuestbookEntries表(EF自动创建的表为实体模型名的复数)中查询数据的集合。
2).在Web.config文件中添加数据库连接字符串:
<add name="GuestbookContext" connectionString="Data Source=.;Initial Catalog=Guestbook;Integrated Security=True" providerName="System.Data.SqlClient" />
注意:1.连接字符串的名字要和上下文类的名字相同,否则要将字符串的名字传递到上下文类的构造方法中;
2.此时运行程序并不会创建数据库!因为这一点折腾了蛮久,后来才发现在对数据表发生操作行为的时候数据库才会被自动创建。哎,菜鸟就是菜鸟。。。
三、珍珠奶茶(增删改查)--操作数据:
1.选择下图框中选项会自动创建CRUD操作方法和相关的视图文件:
2.选择模型和上下文类:
3.此时运行程序输入网址如下所示:
4.上图显示GuestbookEntries表中的数据列表,因为暂时还没有添加数据所以列表为空,只有一个Create New链接;不过现在数据库和对应的表应创建,如下图:
5.点击Create New链接,跳转到新增页面,填写对应内容后提交:
提交成功后,重新跳转到列表页面,可以看到每列数据均对应编辑和删除操作,是不是好强大!
下篇试着分析自动生成的代码,to be continued...