实体框架技术及其在网络课程开发中的应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:wuwei72323
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:介绍了实体框架技术的基本原理与优势,通过实体框架技术访问数据库可有效提高开发效率,增强代码的可读性。以网络课程中主要交互模块的实现为例给出了实体框架技术的应用实例。
  关键词:实体框架;网络课程;ASP.NET
  中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)35-0095-03
  Entity Framework Technology and its Application in Development of Network Course
  LIU Wen-sheng1, LIU Bo-fu2 ,ZHU Ning1
  (1.College of Educational Science, Hunan Normal University, Changsha 410081, China;2.Central South University, Changsha 410083, China)
  Abstract: This paper introduces the principle and advantage of entity Framework technologies, The entity Framework technologies can improve the efficiency and enhance the readability of the code during database operating. Based on the examples of main interaction module’s programming in network course this paper gives the examples of entity framework technologies’ application.
  Key words: entity framework; network course;ASP.NET
  1 概述
  在现代远程教育中,教学活动围绕网络课程展开,网络课程是实施现代远程教育目标的基本单元和核心内容,所以,网络课程的发展状况对网络教学的最终效果有着重要影响。为促进基于Internet的远程教育的发展,实现教育资源的及时共享,作为网络教育资源建设中的重要组成部分,网络课程的设计与开发已成为现代教育技术工作的重要内容。而网络课程的开发离不开网络技术的支持,现有的网络课程的编程技术,都在不同程度上存在着代码重复率高、复用程度低、源代码安全性差等缺陷。为适应信息技术的发展,加快网络课程建设的步伐,将新的动态网站开发技术运用到网络课程的建设工程中成了发展网络教育的一个重要的课题。
  ASP.NET是动态网站开发技术之一,为易用性为网络课程的开发提供了强有力的支持。在以往的ASP.NET开发中,开发人员所使用的是ADO.NET数据访问技术,主要通过Command对象和DataSet对象等实现数据的增、删、查、改等操作,如果数据结构或者存储过程发生改变,很有可能会破坏整个应用程序。而实体框架(Entity Framework)则不然,它是以ADO.NET为基础开发出的对象关系映射(Object Relational Mapping,简称ORM)解决方案,它的作用是在关系型数据库与业务实体对象之间做一个映射,这样一来,在具体操作业务对象的时候只需操作对象的属性和方法,无需编写复杂的SQL语句。ADO.NET实体框架的出现使程序员以完全面向对象的思想开发应用程序,不但使程序员的工作量大大减少,也为应用程序日后的维护工作带来了便利。近几年来,实体框架技术因其开发周期短、可维护性高等优点在动态网站开发中的地位日益上升,逐渐成为数据存取的主角。
  2 实体框架概述
  实体框架是一个对象关系映射工具,可以把开发人员在编程时使用的对象映射到底层的数据库结构,自动从数据库生成数据访问层,能够使程序员免于编写冗长的数据访问类,是一套能够支持开发面向数据的应用程序的技术。因为实体框架是.NET Framework的一个组件,所以只要是安装了.NET Framework 3.5 SP1以上版本的计算机均可运行此框架。
  2.1 实体框架工作原理
  实体框架是根据实体对象操作数据表中数据的一种面向对象的操作框架。它将数据库中的表映射成对应的类,数据表中的各个字段映射为对应类的属性(property),表间关系映射为结合属性(association),从而将数据库的E-R模型转化为编程语言的对象模型。从而使开发人员可以通过操作类来操作数据库,而不需要考虑底层数据库中的数据表和字段。ADO.NET实体框架支持三种数据创建模式,即: 代码优先(Code First)模式、模型优先(Model First)模式、数据库优先(Database First)模式。
  ADO.NET实体框架的核心是实体数据模型(Entity Data Model,简称EDM),由概念模型(Conception Model)、存储模型(Storage Model)、概念-存储模型映射(Conceptual-Storage Mapping)三部分组成。概念模型主要体现为一组能够被应用程序直接使用的被称为“实体(entity)”的类。存储模型主要体现为一组与底层数据存储介质直接对应的类。概念-存储模型映射主要用来解决“概念模型”中的类如何与“存储模型”中的类相互对应的问题。实体框架使用这三种基于XML的语言表示的模型和映射文件把对象模型中的实体和关系的创建、读取、删除和更新等操作转换为数据源中的等效操作。
  2.2 ADO.NET实体框架的优势
  實体框架是微软推出的以ADO.NET为基础的数据建模和对象持久化的最新框架。目的是减少面向数据的应用程序所需编写的代码量,减少开发时间,减轻日后的网站维护工作。   采用ADO.NET实体框架开发应用程序拥有如下优势:
  1) 开发过程中可以通过概念模型直接对数据库进行相关的操作,而不再对特定的数据引擎或者存储架构具有硬编码依赖性;
  2) 从Oracle和SQL Server等数据库映射成的C#代码具有相似性,开发中可以把注意力放到概念模型上,无需关心底层数据库的细节;
  3) 概念模型和映射关系的改变对数据访问层的影响不大;
  4) 多个概念模型可映射到同一个存储架构;
  5) LINQ(即语言集成查询)支持针对概念性模型的编译时语法验证。
  3 实体框架开发环境架设
  3.1 Visual Studio 2015中实体框架的安装
  若要在应用程序中使用实体框架技术,首先需要安装实体框架程序包。在菜单栏中“网站”的下拉菜单里选择“管理NuGet程序包(N)…”,安装Entity Framework,点击“安装”,即可将实体框架下载并安装到解决方案中。
  3.2 ADO.NET实体数据模型的创建
  1) 在菜单栏中“网站”的下拉菜单中选择“添加新项”,之后选择“ADO.NET实体数据模型”,点击添加,根据实体数据模型向导创建实体数据模型。
  2) 在接下来有两种模型选择内容:一种是“从数据库生成”,即从已设计好的数据库直接生成实体数据模型;另一种是“空模型”,即由开发人员重新设计实体数据模型,之后以手动方式由实体框架根据实体数据模型中的实体对象及对象关系等生成相应的数据库。因为原网络课程已有一个完整的数据库,所以此处选择“从数据库生成”。
  3) 点击下一步,进入连接数据库的向导,在“新建连接”中连接到自己的SQL Server服务器,然后选择已有数据库,同时会生成实体连接字符串。
  4) 点击下一步,选择需要在模型中包含的数据库对象,这里选择“表”,其他保持默认。
  5) 点击完成,在App_Code文件夹中生成一个后缀名为.edmx的文件。Visual Studio 2015集成开发环境提供了一个可视化的实体数据模型编辑工具,即ADO.NET Entity Data Model Designer(或称Entity Designer),在Entity Designer中能够可视化的创建并编辑实体、实体之间的关系、数据库和实体类的对应关系及集成关系等。Entity Designer还提供了对象关系模型的效验功能。
  Web.config文件保存了所创建的实体数据模型对应的数据库连接。
  通过创建实体数据模型可自动生成相关代码,使程序员在与数据打交道时无需再关注底层数据的存储结构,而将注意力转向数据表对应的实体类。
  4 应用实体框架技术实现网络课程交互模块
  在Web应用程序中,不同访问者的使用权限有所不同。在本网络课程中,非学员用户可以浏览网站中的信息公告,学习网站内提供的学习教程以及下载网站中提供的源代码实例等,但是没有进行模拟测试的权限。所以,如果用户想要进行模拟测试的话,必须先注册成为该网站的学员,之后登录到网站中方可进行模拟测试。
  1) 用户注册
  新学员注册时,需要填写用户名、设置密码并填写邮箱地址等信息。另外,学员信息表(userName)中用户名必须唯一,所以系统首先会对该用户名进行验证,如果用户名已存在,则提醒用户该名称已被注册,代码如下:
  //验证用户填写的信息是否符合要求
  var allrecords = mydb.userName.Where(c => c.userName1 ==username );
  if (allrecords.Count() >= 1)
  { Label_name.Text = "该学员名已被注册!";}
  信息填写无误后,将新的纪录添加到学员信息表(userName)中,代码如下:
  //添加记录
  userName myrecord = new userName() {userName1 =username,userPass =password ,textEmail =mail ,tate =DateTime.Now,inteGral =0,postNumber =0,privilege ="1" };
  mydb.userName.Add(myrecord );
  mydb.SaveChanges();
  //显示提示信息框,并跳转到Login.aspx页面
  Response.Write("");
  //清空文本框中的信息
  TextBox_name.Text = TextBox_password.Text =TextBox_password2.Text = TextBox_mail.Text = TextBox_check.Text = "";
  2) 用户登录
  如果是学员身份登录,则该网站的访问量不变;如果是非学员身份(即guest)登录,则网站访问量增加1,登录信息表(infoTable)中的数据随之更新,主要代码如下:
  Application["guestsum"] = long.Parse(Application["guestsum"].ToString()) 1;
  Session["stuno"] = long.Parse(Application["guestsum"].ToString());   Session["stuname"] = "guest";
  //将最新的guest号写入infoTable
  var itemrecord = mydb.infotable.Where(c => c.itemname == "guestlogin");
  if (itemrecord.Count() > 0)
  { var firstrecord = itemrecord.First();
  firstrecord.itemvalue = Session["stuno"].ToString ();}
  mydb.SaveChanges();
  4.1 实体框架技术在模拟测试模块中的应用
  网络课程模拟测试模块通常有这些题型,即判断题、单选题、填空题、简单题等,此处以单选题为例来详细说明运用实体框架技术来进行数据存取的具体使用方法。
  1) 试题索引页
  试题索引页主要使用GridView控件显示数据试卷编号,选择“新建数据源”后,在配置数据源时选择“Entity”绑定数据表。
  数据源配置代码如下:
  
  

  在页面的Page_Load()即装载事件中添加代码,将单选试题加载到页面中,以第一道题为例,代码如下:
  protected void Page_Load(object sender, EventArgs e)
  {jygc_courseEntities mydb = new jygc_courseEntities();//得到数据库实体对象
  string id = Request.QueryString["id"];//页面间传值,传递的是试卷编号
  if (id == null)
  {id = "1";}
  if (!IsPostBack)
  {//初始化相关数据
  this.Label1.Text = this.Label1.Text id.ToString();//试卷编号
  //单选题试题
  //单选题1
  var danxuan_1 = mydb.shiTiTable.Where(c=>(c.shiJuanHao ==id)
其他文献
我国水权制度的特点是政府代表国家行使对水资源的所有权,其他自然人和法人行使对水资源的利用权,于是水资源所有权的主体具有行政主体和民事主体的双重属性,在地区间相邻用
期刊
重新解读马克思的著作经典,可以发现马克思的实践范畴是哲学方法论范畴,劳动只是构成马克思主义实践观中的一个因素;马克思主义实践观同时具有价值方法论的意义.这样才在实践
保持设备的良好状态、减少设备的事故停机、降低设备的维修费用是企业提高经济效益的重要手段.设备状态管理的目的就是通过对设备运行信号的监测,掌握设备处于正常、异常、故
<正>~~
期刊
在数字化时代,尽管移动存储、网络存储以及云存储等方式已很普及,但仍有一些应用场合需要用到光盘。诸如安装操作系统、安装PC外设的专业驱动软件,同时不少商务人士需要自己
近日,甲骨文今天宣布IDC认可了Oracle云的发展态势和增速。IDC 2018年4月发布的公有云服务追踪報告显示,在2016和2017年度,甲骨文在所有企业应用SaaS供应商中占据最大的市场份额,在前10大PaaS供应商中发展最快。  甲骨文产品开发总裁Thomas Kurian表示:“Oracle云正在重新定义企业创新、竞争和实现现代化的方式。无论企业想从哪里开始他们的云旅途,甲骨文都可提供全
摘要:《网站建设课程设计》是提高学生网站建设和维护能力的必修课之一,如何透彻的掌握这门课程并能灵活应用到实践中是他们学习的重点和难点。该门课程的精髓就是如何以项目的形式去设计和制作网站,让网站内容丰富,功能强大,应用性强。  关键词:《网站建设课程设计》;教学改革;改革的实施  《网站建设课程设计》作为呼伦贝尔学院计算机专业学生必修的课程,尤其是网络工程专业的同学是学习其他课程的基础。它为学生进行