




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ASP.NetMVC2.0ASP.NETMVC的基本知识SqlServer2008ExpressASP.NETMVC2.0VS2008安装MVC2.0官网:4、降临ASP.NetMVC3.05、基于ASP.NetMVC3.0MusicStore6、ASP.NetMVC心得体会是微软的一个ORM框架O/RMapEF1、新建一个ConsoleApplication,命名为EF2、打开数据库,新建数据库House,Home(Id,intidentity(1,1PRIMARY;Name,nvarchar(32);Address,nvarchar(64)) House.edmx文件和House.Designer.cs文件界面转向edmx设计器(new一个HouseEntitiesHome,上下文和实体中定义的类)staticvoidMain(string[]args){HouseEntitieshouseEntities=newHouseEntities();Homehome=newHome();}{HouseEntitieshouseEntities=newHouseEntities();Homehome=newHome();home.Name=“海景别墅home.Address=“金和}staticvoidMain(string[]{HouseEntitieshouseEntities=newHouseEntities();Homehome=newHome();home.Name海景别墅home.Address=“金和”;}后对上下文操作,将home对象数据添加到网关对应数据中然后调用SaveChanges方法“保存”数据,将数据数据库 1、添加Linq语句(Home是一个集合)varresult=fromhinselectforeach(variteminresult){}varhome1=fromhinhouseEntities.Homewhereh.Id==2selectvarhome1=(fromhinhouseEntities.Homewhereh.Id==selecth).SingleOrDefault<Home>();if(home!={home1.Name=}c SaveChanges方法做了什可用通过SQLServerSQLprofiler在对象模型中:右键->表,可以查看类与数据表的对应关微软图解(ORM的整体概念 1、新建一个ConsoleApplicationEFModel2、添加一个数据模型School.edmx4->实体(Student)->修改实体集(Student)->6、在模型上右键添加一个字段修改Name属性中的类型,注意string类型需要设定最大长度,默认MAX8->->->生成edmx.sql9、edmx.sqlSQL->SQL->->staticvoidMain(string[]{SchoolContainerschoolContainer=newSchoolContainer();Studentstu1=newStudent();Studentstu2=newStudent();stu1.Name=“s1”;stu2.Name=“s2”;}{SchoolContainerschoolContainer=newSchoolContainer();Studentstu1=newStudent();Studentstu2=newStudent();stu1.Name=“s1”;stu2.Name=“s2”;varstu=SchoolContainer.Student.Where<Student>(s=>s.Id==}注:Single与SingleOrDefault的区别在于Single在没有结果错这里不直接使用前面的语法,写个Lambda表达式完成查询->->->选择附加{{}}{Console.Wri}5、另外两个方法.和. {varstu=if(stu!={}}IQueryable接口与IEnumberable接口(使用SQLServerProfiler工具进行2、IQueryable是一个复杂的离线的版本,当在使用的时候才会去数据库中去数据varresults=(fromhinhouseEntities.HomeselectvarresultIQueryable=(fromhinvarresultIEnumberable=(fromhinhouseEntities.Homeselect/flySQLServerProfiler1、工具->SQLServerProfiler->连接所要的数据库->设置属性(一般直接运行LinqToEF(一对多的关系)School.edmx->->->填充属性->->->标量属性(Name)->->->->选择对应类型(1-1,1-n,n-1,n-n)选择Student-Course(1-n)->->SQLstaticvoidMain(string[]args){Studentstu=newStudent();stu.Name=Coursecourse=newcourse.Name宇宙学}staticvoidMain(string[]args){SchoolContainerschoolContainer=newSchoolContainer();Studentstu=newStudent();stu.Name=CoursecoursenewCourse();course.Name=“宇宙学”;};//{SchoolContainerschoolContainer=newSchoolContainer();Studentstu=newStudent();stu.Name=CoursecoursenewCourse();course.Name=“宇宙学”;}{SchoolContainerschoolContainer=newSchoolContainer();Coursecourse=newCourse();course.Name=“宇宙学2”;course.StudentId=1;}EF执行的时候,默认就会加一个比较低级的事务App.config中存放的还有Key,可以传入KeyKey选择连接字符串varresult=fromsinschoolContainer.Studentwheres.Id==1wheres.Course.Count>1selects.Course;{}var<resultName>=<dontainer>.<TableType>.Where<TableType>(<Lambda3、由于上下文的缓存,尽可能的复用,同时由于该因素,上下文会越来越大。WinForm中比较难处理该情况,在Web中可以对Http请求进行分组,每一组new一个上下文EF也是跨数据库支持的
/flyWebForm方式ASP.NetMVC一般常用架构:MVCEFWCF3、可以控制生成自定义的URLASP.NetMVC2、Model主要是或是处理数据的组件4、ControllerMVC请求模型用WebForm中模拟MVCCodeBehind=”Default.aspx.cs”Inherits=”WE._Default”%><asp:LabelID=”Label1”runat=”server”<%=MyNamepublicpartialclass_Default:{privatestringmyName;publicstring{get{returnmyName;}set{myName=value;}{this.Label1.Text=“oMVC”;MyName=“nihao!”;}}MyNameModel,将Page_Load看作ControllerWebForm的开发前代码紧耦合,修改需要前后匹配publicpartialclass_Default:{publicstringMyName{get{returnmyName;}set{myName=value;}publicList<string>Names=newList<string>(){MyName=“nihao!”;}}CodeBehind=”Default.aspx.cs”Inherits=”WE._Default”%><%=MyName<%for(inti=0;i<Names.Count;{<br<span><%=Names[i]<%} CodeBehind=”Default.aspx.cs”Inherits=”WE._Default”%><%=MyName<%for(inti=0;i<Names.Count;{<br<span><%=Names[i]%></span><span><%:Names[i]<%}publicpartialclass_Default:{publicstringMyName{get{returnmyName;}set{myName=value;}publicList<string>Names=newList<string>(){MyName=“nihao!”;}} 因此<%:Names[i]%>等价于<%=HttpUtility.HtmlEncode(Names[i])MVC的第一个项目 2->3Controllers->->这是命名约定,命名为TeacherController,选择添加usingusingSystem.Linq;usingSystem.Web;namespaceMvcApp{{//Get:{}}}在Index方法上右键->添加视图->弹出一个里面包含一个Index.aspx文件<%@PageTitle=””Language=”C#”MasterPageFile=”~/Views/Shared/Site.Master”Inherits=”System.Web.Mvc.Viege<dynamic>”%>在MVC中,请求到Controller中时,系统会判断是那个类的方法publicclass{publicstringId{get;set;}publicstringName{get;set;}publicstringAddress{get;set;}}{{teacher.Address=“nhao”;teacher.Id=“1”;teacher.Name=“malun”;returnView();}}{{teacher.Id=“1”;teacher.Name=“malun”;ViewData[“Teacher1”]=teacher;}}运行returnView()ViewData中的数据交给View<%@PageTitle=””Language=”C#”MasterPageFile=”~/Views/Shared/Site.Master”Inherits=”System.Web.Mvc.Viege<dynamic>”%><%:ViewData[“Teacher1”] publicViewDataDictionary<TModel>ViewData{get;set;在执行View()方法的时候,交给ViewpublicclassTeacherController:{{teacher.Address=“nhao”;teacher.Id=“1”;teacher.Name=“malun”;ViewData[“Teacher1”]=teacher;returnView(“MyPage”);}}注:请求执行过程,会在URL指定的路径下找相应文件和方法如果不存在,则在Shared文件夹下去找即URL后的名字与方法名相同<%@PageTitle=””Language=”C#”MasterPageFile=”~/Views/Shared/Site.Master” ge<MvcApp.Models.Teacher>”%>地址:Model.Address:<%:Model.NamepublicActionResultIndex(){…ViewData.Model=teacher;returnView();}2、每个Controller都对应ViewControllerMVC的模式下,与WebForm1、新建Controller->创建2、根据Action创建View->在Action获取数据产生ActionResult传递给View注:View显示数据的模板请求流程:urlController.ActionView1、View和ControllerModelModel不依View和Controller2、Controller可以直接请求View来显示具体页面,View不依赖与ControllerModels->->数据:ADO.NET实体模型(HouseCtrCtCtr8、在Index方法上添加视图 …<%foreach(variteminModel){
<%:item.ID<%:item.CPU<%:item.Mouse<%}…{HouseContainerhouseContext=newViewData.Model= returnView();}->选择属性(强类型、视图内容:Details)->aspx{HouseContainerhouseContext=newvarresult=fromcin puterwherec.ID==idselectc;ViewData.Model=result.SingleOrDefault<Computer>();}{varresult=fromcin puterwherec.ID==idselectc;returnView(result.SingleOrDefault<Computer>());}publicActionResult{}当提交数据的时候,使用post{{}
{}}15、为Createcreate->->选择视图内容(Create)->form
<%}实际上可以通过Request方法来找到提交的数据,例如{…Request[“input”];//的name…}{… //属性…}publicActionResultCreate(Computer{{}
HouseContainerhouseContextnewHouseContainer();//new一个网{}}16、下面做代码与Details代码几乎相同{HouseContainerhouseContext=newvarresult=fromcin puterwherec.ID==idsel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 热点主题作文写作指导:微笑与沉默(审题指导与例文)
- 2013-2014学年八年级《历史与社会》上册第三单元第一课《秦始皇开创大一统基业》教学设计(平湖市新埭中学)
- 第14课 法西斯国家的侵略扩张(教学设计)-2024-2025学年九年级历史下册素养提升教学设计(统编版)
- 《论语》十二章 教学设计 2024-2025学年统编版高中语文选择性必修上册
- 2025年新型聚合物驱油剂项目发展计划
- 食品安全习题库含参考答案
- 第五单元 第4章 第1节 细菌和真菌的分布(新教学设计)2023-2024学年八年级上册生物(人教版)
- Unit 3 Could you please clean your room Section A 1a~1c 教学设计 -2024-2025学年人教版八年级英语下册
- Module7 Unit3(教学设计)-2023-2024学年外研版英语八年级下册
- 宁夏固原市2023-2024学年高二上学期期末考试地理试题(解析版)
- 【独立储能】山西省独立储能政策及收益分析-中国能建
- (正式版)CB∕T 4550-2024 船舶行业企业安全设备设施管理规定
- 新入职员工廉政谈话
- JB∕T 9006-2013 起重机 卷筒标准规范
- 2024内蒙古中考数学二轮专题复习 二次函数与几何综合题 类型二 面积问题(课件)
- 太平洋保险计划书模板
- 2024年广东省中考生物+地理试卷(含答案)
- 2024年高考时事政治考试题库(134题)
- 有关煤矿生产新技术、新工艺、新设备和新材料及其安全技术要求课件
- DZ∕T 0201-2020 矿产地质勘查规范 钨、锡、汞、锑(正式版)
- 安全生产责任制考试试卷及答案
评论
0/150
提交评论