关于ASP.net MVC 的一些内容

关于CodeFirst

第一创建
1、向MVC工程项目的“Model”文件夹添加“数据对象”,如果B对象是A对象的属性子对象,那么可以这样“public class A{public B B{get;set;}}”编写他们之间的关系,从而让“EntityFramework”自动判断,完成物理表的创建,并添加相应的外键

2、添加相应的数据库上下文,如PatrolContainer:DbContext,在基类构造函数base中传入命名参数“Name=DefaultConnection”指定启用的数据库连接,默认情况下,工程会包含一个本地数据库的连接

3、添加与“数据对象”相对应的“控制器”

4、编译、运行工程,访问3中创建的控制器方法

5、“EntityFramework”会自动根据对象之间的关系生成相应的物理数据库

修改“数据对象”
1、向“Model”文件夹中添加新对象或修改已有对象
2、向数据库上下文对象中添加新的DbSet<>属性
3、“工具”--“库程序包管理器”-->“程序包管理器控制台”
4、在控制台中运行“Enable-Migrations”命令
5、使用“Add-Migration”命令创建新的数据库迁移代码
6、检查并修改生成的数据库迁移代码
7、运行“Update-Database”命令向已经创建的数据库中添加与新对象相对应的物理表
8、创建与新对象相对应的“控制器”

数据库迁移处理(另外对于使用自增长值作为主键及外键的情况,另外处理)
1、迁移到其他数据库服务器上,可以使用“附加数据库”的方式
2、修改“数据库连接”


关于 DatabaseFist

1、该模式指的是预先创建好了一个包含各种数据表的数据库,再根据已经创建的数据表编写相应的对象代码的开发方式

2、编写生成视图的Transaction-SQL代码创建视图,在“概念模型浏览器”中执行“从数据库更新模型”命令,从而加载视图;再“添加实体”,选择相应的“视图”,从而Entity Framework可以对视图进行操作;需要注意的是,创建的视图一定要有主键,否则,会报错


关于 ModelFirst

第一次创建数据模型
1、向MVC工程项目中添加“ADO.net数据模型”
2、运行“根据数据模型创建数据库”命令
3、检查生成的Transaction-SQL脚本
4、在Transaction-SQL脚本界面连接数据库,如果使用本地数据库那么,可以使用字符串“(localdb)\v11.0”来代表服务器,确定后会生成空的数据库
5、执行脚本生成生成与数据模型想对应的数据物理表
6、编译整个工程
7、添加与数据模型向对应的“控制器”
8、修改相关的视图

修改数据模型
1、修改相应的数据模型图
2、查看生成的Transaction-SQL,判断是否要删除已经创建的表
3、连接数据库
4、运行脚本
5、编译整个工程
6、添加与数据模型向对应的“控制器”
7、修改相关的视图

数据库迁移
1、可以使用“附加数据库”的方式,将已有的数据库转移到目标数据库服务器上
2、修改“数据库连接”
3、如果要创建新的数据库,可以通过运行“*.edmx.sql”脚本的方式来生成;不需要再添加C#代码来完成数据创建


关于“Linq”与“Entity  Framework”之间的关系

1、“Linq”是一组将“SQL”查询模式集成到开发语言中的技术,该技术运行时,需要提供“数据上下文”;目前支持的“数据上下文”有如“数组”等一般集合对象,还有“数据库上下文”

2、“Entity Framework”是一组“数据库访问技术”,基底层依赖于“ADO.Net”技术,它的目的在于实现应用程序概念级内存对象与数据库各种对象的直接映射,不要开发人员解决程序语言类型与数据库类型之间的映射处理,同时提供基础的操作函数,来完成基本的“CRUD”操作

3、当“Entity Framework”与“Linq”结合时,“Entity Framework”为“Linq”提供“数据源上下文”,并且“Entity Framework”的“DataSet”对象支持“Linq”技术要求的接口


关于Lambda在“Linq”中的应用

1、“Lambda”分为“表达式”和“语句”两种。表达式一般只包含很少的语句;“Lambda语句”使用“{}”将“Lambda主体”包含,该情况下可以包含条件判断等复杂语句的编写


2、“Lambda”一般作用的“集合对象”上,它的目的在于描述“集合元素”的特征,并可以做一定的处理

3、本质上“Lambda”与“委托”的作用是类似的,“Lambda”语法更简单,更易于与“集合”这样的情况使用


关于ModelFirst下数据库约束

1、数据库约束的创建语句是alter table table1 add constrant constrant1 约束种类
2、约束种类分为五种:Primary Key;Foreign Key;Check;Default;Unique


关于MVC工程的发布

发布到文件系统的方式
1、通过“IIS管理器”创建一个空的网站
2、解决方案中右键菜单“发布”-->“文件系统”
3、填写“物理路径”和“目标URL(网站的IP地址)”
4、注意事项:1中创建的与空网站配套的“应用程序池”启用的Framework版本必须与“发布项目”使用的Framework版本一致;应用程序池设置中的“托管管道模式”得选“经典”,该模式是常用模式


关于PartialView的使用

1、PartialView可以将各页面共用部分做成模板,将模板放置在“Views\Shared”文件夹内
2、可以通过三种方式来调用PartialView
3、在cshtml页面中,通过@Html.Partial,通过PartialView名称和数据对象来调用,该方式是在服务器端完成的
4、在cshtml页面中,通过@Html.Action,通过Action(输出PartialView的方法)名称和Controler名称来调用,该方式是在服务器端完成的
5、通过如JQuery.load方法调用,该方式需要再次访问服务器


关于复合对象的处理

1、对于如这样的对象
class A
{
  public int aa{get;set;}
  public B bb{get;set;}//B是自定义对象类型
}需要分别处理“输入”和“展示”两部分

2、@Html.EditorFor(model => model.bb)
   @Html.ValidationMessageFor(model => model.bb)这样的方式可以直接将A的字段和B的字段拼凑在一起展示


关于路由的说明

1、RouteConfig.cs中控制的是整个域的路由初始化,也可以做一些比较具体的路由设计
2、开发过程中,约定“Views”文件夹下的路径命名要与“Controls”里“Action”相对应


关于输入验证

1、输入验证依赖于jquery.validate.js和jquery.validate.unobtrusive.js
2、MVC渲染模块给各种输入标签生成与jquery.validate相配套的属性,jquery验证代码自动根   据这些属性添加相应事件下的输入验证js代码
3、另外为了启用前端的验证机制,需要在web.config文件的"AppSetting"节里增加“ClientValidationEnable=true”和“UnobtrusiveJavaScriptEnable=true”这两个属性
4、除了在服务器端相应对象的字段上添加必要的自定义验证属性外,前端的自定义js需要像jquery.validate.js添加验证方法,在jquery.validate.unobtrusive.js中启用验证方法


关于已经部署项目更改支持

1、已经将开发好的系统部署到客户那里,并且数据库内已经生成了部分数据
2、现在客户提出需要修改数据库结构来增加新需求,最好的方式是编写Transaction-SQL数据库脚本,完成数据库结构的更改



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值