Web Rest和

Web的简单性使之能够得到广泛的普及,并且成为互联网的标准。它由URL/HTTP/HTML三个基本的标准构成。HTTP是Web的核心,它是一个简单的请求-——回复的传输协议,客户端请求什么,服务端就给什么,并且每次消息交换均是独立的。HTTP是一种文档化的协议(Documented Protocol),客户端将请求文档置于HTTP请求封套(Envelope)中发送给服务端,而服务端将响应文档置于HTTP响应封套中返回给客户端。

HTTP方法(HTTP Menthod或者HTTP Verb)对于REST来说是一个非常重要的概念哦。如果将请求的目标视为一种网络资源的话,HTTP方法反映了正对该资源的操作类型。我们常用的几种HTTP方法(比如GET/HEAD,PUT,POST和DELETE)分别体现了这对目标资源的获取、添加、修改和删除操作。

Rest与技术无关,代表的是一种软件架构风格。REST是Representational State Transfer的简称。中文翻译为"表征状态转移"。在此之前Web服务具有两种主流的架构风格,即SOAP和XML_RPC.

REST从资源的角度来审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的额表征,获得这些表征致使这些引用程序转变了状态。随着不断获取资源的表征,客户端应用不断的在转变着状态。

所有的数据,不论是通过网络请求获取的还是操作(创建,修改和删除)的数据,都是资源。这部仅仅包括图片、MP3和视频这些通过具体文件承载的物理资源,还包括通过关系型数据库保存的数据,甚至包括一些经过实时计算得到的数据。将一切数据视为资源是REST区别于其它架构分割最为本质的属性。

ASP.NET Web API直接借鉴了 ASP.NET MVC的设计,所以两者有非常类似的编程模式。

实体状态和附加和 SaveChanges 方法

跟踪的数据库上下文是否在内存中的实体与在数据库中,其相应的行同步以及此信息确定调用SaveChanges方法时,会发生什么。例如,当你传递给Add方法的一个新的实体,该实体的状态设置为Added然后当你调用SaveChanges方法,数据库上下文发出 SQLINSERT命令。

实体可以处于以下状态之一:

  • Added实体不存在尚未在数据库中。SaveChanges方法必须发出一个INSERT语句。
  • Unchanged什么都不需要去做与此实体SaveChanges法。当你从数据库中读取的实体时,该实体开始与这种地位。
  • Modified某些或所有实体的属性值已被都修改。SaveChanges方法必须发出一个UPDATE语句。
  • Deleted实体已标记为删除。SaveChanges方法必须发出DELETE语句。
  • Detached该实体不是被跟踪的数据库上下文。

在桌面应用程序中,通常自动设置状态更改。在桌面应用程序的类型中,您阅读实体,并对一些其属性值进行更改。这将导致其实体的状态自动更改为Modified然后当你调用SaveChanges,实体框架生成更新仅有实际的属性更改 SQLUPDATE语句。

Web 应用程序的已断开连接的性质不允许为此连续的序列。读取一个实体DbContext被处置后呈现的页面。当调用HttpPost Edit操作方法,发送新的请求和你有DbContext的一个新实例时,所以您必须手动将实体状态设置为Modified.然后当您调用SaveChanges,实体框架更新的数据库行的所有列,因为该上下文有没有办法知道哪些属性更改。

如果您想要更新只有用户实际更改的字段的 SQLUpdate语句,可以以某种方式 (如隐藏字段) 保存的原始值,以便他们可以HttpPost Edit方法被调用时。然后可以Student使用创建实体的原始值,调用Attach方法与实体的原始版本,更新到新的值,该实体的值,然后调用SaveChanges.更多的信息,请参阅实体状态和 SaveChanges和 MSDN 数据开发人员中心中的本地数据

原文地址:https://www.cnblogs.com/275147378abc/p/4763112.html