接上篇
更新,删除可以先找出实体,然后直接更改属性保存即可,删除直接调用remove
1 | var db = new luox78_成绩管理系统Entities(); |
1 | var college1 = db.College.Find(1, 0);//这里College表中有两个主键 |
code first
https://www.cnblogs.com/lsxqw2004/archive/2015/08/07/4701979.html
上下文管理:实例管理
1 | public static DbContext GetCurrentDbContext() |
利用HttpContext.Current.Items存入DbContext
为什么用EF而不用原生的Ado.Net
1、极大的提高开发效率:EF是微软自己的产品,跟VS开发工具集成度比较好,开发中代码都是强类型的,写代码效率非常高,自动化程度非常高,命令式的编程。
2、EF提供的模型设计器非常强大,不仅仅带来了设计数据库的革命,也附带来的自动化生成模型代码的功能也极大的提高开发和架构设计的效率
3、EF跨数据支持是ORM框架主要功能点之一,带来的是可以通过仅仅改变配置就可以做到跨数据库的能力。
4、使开发人员远离sql脚本
5、缺陷:性能差(生成sql脚本阶段),在复杂查询的时候生成的sql脚本效率不是很高。
MVC
控制器: https://luox78.github.io/2018/02/07/ASP.NET%20MVC%20%E6%8E%A7%E5%88%B6%E5%99%A8/
视图: https://luox78.github.io/2018/02/13/ASP.NET-MVC-%E8%A7%86%E5%9B%BE/
管道流程:
ISAPIRuntime.ProcessRequest()创建HttpWorkerRequest对象
→HttpRuntime.ProcessRequest()创建HttpContext,包含HttpRequest,HttpResponse等
→HttpAppicationFactory获取HttpApplication(根据Gloable文件)→ASP.NET管道流程
有关Application_Start():
1 | public class MvcApplication : System.Web.HttpApplication |
关于Name有可能拿的到有可能拿不到,原因:MvcApplication创建在IIS应用程序池,有缓存的时候会返回池里面第一个,没有则创建新的
HttpAppicationFactory获取HttpApplication(根据Global文件):
- 初始化工厂:根据Global编译到
ApplicationType - 确保
Application_Start被调用 - 创建
HttpApplication,先去缓存栈中取没有new
拓展方法使用一个技巧:
1 | //通过更改命名空间实现所有的view均可以使用自己定义的htmlhelper |