参考

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语句,使这些改变和数据库保持一致。

MVC之基架的更多相关文章

  1. MVC 用基架创建Controller,通过数据库初始化器生成并播种数据库

    1 创建MVC应用程序 2 在Model里面创建实体类 using System; using System.Collections.Generic; using System.Linq; using ...

  2. MVC使用基架添加控制器出现的错误:无法检索XXX的元数据

    环境 vs2012 框架 mvc3 数据库  sqlservercompact4.0 出现的错误如下: “ ---------------------------Microsoft Visual St ...

  3. MVC 基架不支持 Entity Framework 6 或更高版本

    MVC 基架不支持 Entity Framework 6 或更高版本.有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=276833. PS:新做一个 ...

  4. MVC 基架不支持 Entity Framework 6 或更高版本 即 NuGet的几个小技巧

    MVC 基架不支持 Entity Framework 6 或更高版本.有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=276833. 原因:mvc版 ...

  5. 学习《ASP.NET MVC5高级编程》——基架

    基架--代码生成的模板.我姑且这么去定义它,在我学习微软向编程之前从未听说过,比如php代码,大部分情况下是我用vim去手写而成,重复使用的代码需要复制粘贴,即使后来我在使用eclipse这样的IDE ...

  6. Asp.net MVC4高级编程学习笔记-模型学习第四课基架与模型绑定20171027

    MVC模型 一.构建基架. MVC中的基架可以为应用程序提供CURD各种功能生成所需要的样板代码.在添加控制器的时候可以选择相应的模板以及实体对象来生成相应的模板代码. 首先定义一个模型类如下所示: ...

  7. MvcMailer通过ASP.NET MVC Razor视图和基架发送邮件

    MvcMailer是一个有趣的组件,您可以使用ASP.NET MVC框架在发送邮件.很重要的是,它使用Razor视图引擎的观点作为电子邮件模板和很容易安装和使用.在本文中你将看到如何安装,设置邮件模板 ...

  8. MVC基架生成的 Details视图

    @model MyMusicStore.Models.Album @{     ViewBag.Title = "Details"; } <h2>Details< ...

  9. MVC基架生成的Edit视图

    @model MyMusicStore.Models.Album @{     ViewBag.Title = "Edit"; } <h2>Edit</h2> ...

随机推荐

  1. vue实现简单的全选、反选、不选

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. git个人学习总结

    什么是git 代码管理工具,分布式管理,每个人电脑都是一个完整的版本库.并且有中央服务器(gitHub,gitLab)提供代码交换修改 git基础概念 工作区:自己的项目(有一个隐藏目录 " ...

  3. Sqlserver自动优化

     (1)select a.* from tb1 a left join tb2  b on a.id=b.id where a.name='1' (2)select * from (select a. ...

  4. loj 10181 绿色通道 二分答案+单调队列DP

    空题段长度即为单调队列长度区间 每次二分答案进行check即可 #include<bits/stdc++.h> using namespace std; ; const int inf=0 ...

  5. 【Unity&C#】lambda函数

    以下两段代码等价. 未使用lambda函数的代码: private Button PB; private void Start() { PB = GameObject.Find("PButt ...

  6. Docker 更改默认存储目录 - 十一

    Cemtos 7 Docker 默认目录是 /var/lib/docker docker info 查看 docker 配置信息 更改 docker 默认目录 :  编辑 启动文件: 编辑 /usr/ ...

  7. 数据库设计理论与实践·<四>数据库基本术语及其概念

    一.关系模型 关系模型是最重要的一种数据模型.关系数据库模型系统采用关系模型作为数据的组织方式. 关系模型的数据结构: 关系:一张表 元组:一行记录. 属性:一列 [码(键,key)]:表中的某个属性 ...

  8. ue4网络同步概念笔记

    网络同步主要的概念是 复制.  不是以前的S,C逻辑分离.  是S复制到C通过 Switch Has Authority  将S与C的逻辑在程序内分离. 所属权:每个连接到S的C都有自己的 控制权.从 ...

  9. JDK开发环境搭建及环境变量配置

    Java配置----JDK开发环境搭建及环境变量配置 1. 下载安装安装JDK开发环境 http://www.oracle.com/technetwork/java/javase/downloads/ ...

  10. mysql 修改文件记录:

    增:  insert  t1(id, name) values(1, "alex"), (2, "wusir"), (3, "dabing" ...