参考

ASP.NET MVC5 高级编程(第5版)

定义:

通过对话框生成视图及控制器的模版,这个过程叫做“基架”。

基架可以为应用程序的创建、读取、更新和删除(CRUB)功能生成所需的样板代码。基架模版检测模型类的定义,然后生成控制器以及与该控制器关联的视图,有些情况下还会生成数据访问类。基架知道如何命名控制器、命名视图以及每个组件需要执行什么代码,也知道在应用程序中如何放置这些项以使应用程序正常工作。

基架选项:

如果不喜欢默认的基架,可以根据需要自定义基架或替换现有基架的代码生成机制。也可以通过NuGet(搜索scaffolding)查找可替代的基架模版。NuGet库中全是运用特定设计模式和技术来生成代码的基架。

常用的基架模版:

(1)MVC5 Controller——Empty

该会向Controllers文件夹中添加一个具有指定名称且派生自Controller的类(控制器)。这个控制器带有的唯一操作就是Index操作,且在内部除了返回一个默认ViewResult实例的代码之外,没有其他任何代码。这个模版不会生成任何视图。

(2)MVC5 Controller with read/write Actions

该模版会向项目中添加一个带有Index、Details、Create、Edit和Delete操作的控制器。虽然控制器内部的操作不是完全空白,但不会执行任何有实际意义的操作,除非向其中添加自己的代码并为他们创建试图。

(3)Web API 2 API Controller Scaffolders

有几个模版向项目中添加一个继承自基类ApiController的控制器。可以使用这些模版为应用程序创建Web API

(4)MVC5 Controller with Views,Using Entity Framework

该模版不仅生成了带有整套Index、Details、Create、Edit和Delete操作的控制器及其需要的所有相关视图,并且还生成了与数据库交互(持久保存数据到数据库或从数据库中读取数据)的代码。

基架和实体框架:

新建的ASP.NET MVC5项目会自动包含对实体框架(EF)的引用。EF是一个对象关系映射(object-relational mapping,ORM)框架,它不但知道如何在关系型数据库中保存.NET对象,而且还可以利用LINQ查询语句检索那些保存在关系型数据库中的.net对象

EF支持数据库优先、模型优先和代码优先的开发风格;MVC基架采用代码优先代码优先的风格。

代码优先是指可以在不创建数据库模式、也不打开Visula Studio设计器的情况下,向SQL Server中存储或检索信息。

模型对象中的属性如果设置为虚拟的,可以给EF提供一个指向C#类集的钩子(hook),并未EF启用了一些特性,如高效的修改跟踪机制(efficient change tracking mechanism)。EF需要知道模型属性值的修改时刻,因为需要在这一刻生成并执行一个SQL UPDATE语句,使这些改变和数据库保持一致。

最新文章

  1. 简单的Viewing Frustum Culling
  2. maven的使用--初级篇
  3. 简单尝试利用vultr vps自架PPTP上网用于工作学习需要
  4. fedora23的firefox不能播放优酷视频?
  5. java dbcp连接池的使用
  6. 导出项目为jar包
  7. PHP 关于文件操作的简单介绍
  8. 【转】简析SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue
  9. EventBus源码解析
  10. AFHTTPSessionManager
  11. Python Web框架篇:Django Form组件
  12. Zathura: 轻巧好用的 PDF 查看器]
  13. bash 4
  14. 【历史】- Windows NT 之父 - David Cutler
  15. docker-compose教程(安装,使用, 快速入门)
  16. C#学习笔记(十八):数据结构和泛型
  17. python爬虫多线程编程
  18. 理解JavaScript原始类型和引用类型
  19. spring 集成 redis -- pub/sub
  20. sqlserver中 多条数据合并成一条数据 (stuff 与 for xml path 连用)

热门文章

  1. Nginx+Tomcat+Https 服务器负载均衡配置
  2. 我手机上常用的app和常访问的网站
  3. -如何存储并定时更新access_token
  4. 理解JS的执行环境
  5. Hadoop之HDFS思维导图
  6. Hbase使用MapReduce编程导出数据到HDFS
  7. ES6走一波 Iterator
  8. Linux命令之-ps & kill
  9. sqlite3_column_type 与 SQLITE_NULL的区别
  10. mysql 查询优化 ~ 优化基础补充