当前位置: 首页 > news >正文

盛泽建设局网站wordpress新手教程

盛泽建设局网站,wordpress新手教程,常见的旅游网络营销方式,网络推广的工作好做吗什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。ORM(对象关系映射框架):指的是面向…

      什么是Entity Framework呢(下面简称EF)?

      EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。ORM(对象关系映射框架):指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。

      如此官方的解释,你懂吗? 我理解的是,业务实体在内存中表现为对象,在数据库中表现为数据,内存中的对象之间,存在关联和继承关系,而在数据库中,关系数据无法直接表达这些关系。而对象-关系映射(ORM)就是解决这一问题的。ORM作为一个中间件,实现程序对象到关系数据库的数据映射。那么,EF也就是一种实现数据库和程序中的实体相互映射的一种工具。(我的理解,如果有误,欢迎指出)

      EF的核心是什么呢?

      EF的核心,就是EDM(实体数据模型),EDM是一个规范,用于定义由实体框架基础上生成的应用程序使用的数据。使用EDM 的应用程序在设计架构中定义应用程序域中的实体和关系。设计架构用于生成由应用程序代码使用的可编程类。在此模型中持久保留应用程序数据的存储结构由另一个架构(称为存储架构)表示。映射规范用于连接设计架构与存储架构。简单理解,就是定义出实体和数据库的对应关系。

      EDF有三个概念组成:概念模型(概念架构定义语言文件[.csdl])、映射(映射规范语言文件[.msl])、以及存储模型(存储架构定义语言文件[.ssdl])。这三者结合在一起,就是EDM模式。EDM模式在项目中的表现形式就是扩展名为.edmx的文件。这个包含EDM的文件可以使用vs中的EDM设计器来设计,由于这个文件本事就是XML文件,可以手工编辑此文件来自定义csdl、msl与ssdl这三部分。

      EDM——CSDL

      CSDL定义了EDM或者说是整个程序的灵魂部分——概念模型。概念模型可以理解为实体类。实体类是面向对象设计中一个最根本的组成部分,其提前了显示世界中对象作为一种计算中可以表示的对象设计方法。而EDM的CSDL就是要达到这样一个目的。简单说,就是通过实体,达到一种数据转存或存储或更新,从而进行计算。

      代码结构:Schema是CSDL的根元素,其中定义的Namespace是用于ObjectContext与EntityClass的命名空间,Alias-别名为此命名空间Namespace指定一个易记的名称,在定义Alias之后,在此Schema内的Element均可以该Alias作为Namespace的别名。(代码示例如下)

 <!-- SSDL content --><edmx:StorageModels><Schema Namespace="newssystemModel.Store" Provider="System.Data.SqlClient" ProviderManifestToken="2008" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl"><EntityType Name="category"><Key><PropertyRef Name="id" /></Key><Property Name="id" Type="int" StoreGeneratedPattern="Identity" Nullable="false" /><Property Name="name" Type="varchar" MaxLength="200" Nullable="false" /></EntityType>
<span style="white-space:pre">	</span><!--省略N个EntityType和Association--><Association Name="FK_news_category"><End Role="category" Type="Self.category" Multiplicity="0..1" /><End Role="news" Type="Self.news" Multiplicity="*" /><ReferentialConstraint><Principal Role="category"><PropertyRef Name="id" /></Principal><Dependent Role="news"><PropertyRef Name="caId" /></Dependent></ReferentialConstraint></Association><EntityContainer Name="newssystemModelStoreContainer"><EntitySet Name="category" EntityType="Self.category" Schema="dbo" store:Type="Tables" /><EntitySet Name="comment" EntityType="Self.comment" Schema="dbo" store:Type="Tables" /><EntitySet Name="news" EntityType="Self.news" Schema="dbo" store:Type="Tables" /><EntitySet Name="sysdiagrams" EntityType="Self.sysdiagrams" Schema="dbo" store:Type="Tables" /><AssociationSet Name="FK_comment_news" Association="Self.FK_comment_news"><End Role="news" EntitySet="news" /><End Role="comment" EntitySet="comment" /></AssociationSet><AssociationSet Name="FK_news_category" Association="Self.FK_news_category"><End Role="category" EntitySet="category" /><End Role="news" EntitySet="news" /></AssociationSet></EntityContainer></Schema></edmx:StorageModels>

      EDM——SSDL

      这个文件描述了表、列、关系、主键及索引等数据库中存在的概念。SSDL的代码结构与CSDL相似。

      EDM——MSL

      这个文件及上面所述的CSDL和SSDL的对应,主要包括CSDL中属性与SSDL中列的对应。MSL的根节点为Mapping,其中可以包含多个EntityContainerMapping(可以只有一个),每一个EntityContainerMapping对应着两个分别来自CSDL与SSDL的EntityContainer。这个EntityContainerMapping就是描述这两个EntityContainer间的对应。下面再给出一段代码展示EntityContainerMapping的基本格式。

      EF实例

      例子如下  , 操作数据库 实现增删改查

 static void Main(string[] args){//所有对数据库的操作第一就是创建数据访问 的上下文newssystemEntities dbContext = new newssystemEntities();#region 增加///修改category category = new category();//category.id = 9;category.name = "岁半";//dbContext.Entry<category>(category).State = System.Data.EntityState.Modified;dbContext.Entry<category>(category).State = EntityState.Added;dbContext.SaveChanges(); #endregion#region 修改///修改category category = new category();category.id = 30;category.name = "新新闻";dbContext.Entry<category>(category).State = System.Data.EntityState.Modified;//dbContext.Entry<category>(category).State = EntityState.Added;dbContext.SaveChanges();#endregion#region 删除///修改category category = new category();category.id = 30;//category.name = "新新闻";// dbContext.Entry<category>(category).State = System.Data.EntityState.Modified;dbContext.Entry<category>(category).State = EntityState.Deleted ;dbContext.SaveChanges();#endregion#region 查询并修改//查询出来实体:默认就是跟踪状态var item = dbContext.category.FirstOrDefault();item.name = "lirui";//只要改属性,那么就会自动将此实体的状态改为ModifieddbContext.SaveChanges(); #endregion}

      EF的优点和缺陷

      优点:可以把实体类的定义有一个单独的项目使用C#class完成这样一种设计方式转变为使用xml文件定义并集成到数据访问层。以通过动态更改EDM的方法来增加实体并将其映射到数据库。便于修改数据库等等。

      不足:Entity Framework技术的效率问题是其几乎唯一一个稍有不足之处。首先其将EntitySQL转换为SQL的方式属于解释性转换,性能较差。另外Entity Framework在每次应用启动时需要读取EDM,这个过程较慢(但在后续操作时,就不再存在这个问题)。

      

      


http://www.yayakq.cn/news/444211/

相关文章:

  • 胶南网站建设公司乐从建网站
  • 网站设计说明书主要有什么网站的优化 设计
  • 俄语网站建设注意事项中国建设科技集团股份有限公司
  • 智慧树网页设计与制作答案西安的网络优化公司
  • 单色系网站设计有哪些wordpress 插件 加速
  • 深圳网站seo建设seowhy
  • 成都网站建设上云淘宝客论坛响应式php网站下载
  • 嘉定网站建设电脑培训河间网站建
  • 天津网络优化网站建设南京重庆网站建设
  • 保定网站制作设计哪个公司好营销型网站建设营销型
  • php开发手机网站网站建设开发图片
  • 寻亲网站开发设计文档大学生ppt自我介绍幻灯片
  • 织梦做淘宝客网站抖音优化是什么意思
  • 推广网站的几种方法wordpress logo替换
  • 长春网站优化团队成都网站制作的公司
  • 主任说到学校新网站的建设工作网站空间源码
  • 招商网站设计微慕wordpress插件
  • 建站公司兴田德润简介为什么菜市场不可以做网站
  • 深圳网站建设公司 犀牛云 移动云网站网站** 教程
  • 南京软月网站建设公司软件人员外包
  • 如何链接自己做的网站网站建设月薪
  • 玩具电子商务网站建设论文信用网站建设意见
  • 哪些网站做任务可以赚钱博客模板wordpress
  • 百度提交网站改版免费设计室内装修网址
  • 地方门户网站发展趋势跨境电商网站建设成本
  • 闵行交大网站建设网站服务器租用怎么购买
  • 影院网站模板网站编程学习
  • 网站后台挂马怎么处理网络运营需要什么技术
  • html链接网站模板爱站网关键词工具
  • 设计一个官方网站推广广告为企业进行网站建设方案