ADO.NET Entity Framework深入分析, Part 7 – Change Tracking

ObjectStateManager – 对象状态管理器

我们已经知道如何增加、更新和删除实体记录,并将更改数据库记录。Entity Framework 通过Object Context 控制的ObjectStateManager 对象来跟踪变更,ObjectStateManager 将跟踪所有对实体对象的变更,在调用SaveChanges() 方法时,执行相应的T-SQL脚本。

ObjectStateManager比LINQ to SQL中DataContext 的变更跟踪功能更先进。下面,我们详细了解如何显示有用的变更跟踪信息。

时间: 2024-08-18 07:32:12

ADO.NET Entity Framework深入分析, Part 7 – Change Tracking的相关文章

ADO.NET Entity Framework深入分析,Part 6–处理并发(Concurrency Handling)

设置并发模式 Entity Framework 实现了乐观的并发模式(Optimistic Concurrency Model).默认情况下,在实体更新数据提交到数据库时,并不会检查并发.对于高频率的并发属性,你需要设置属性的并发模式为Fixed. 这些属性将会加入到T-SQL脚本的WHERE子句部分,用来比较客户端的值和数据库端的值. 示例代码: public void UpdateProduct() { Product product = context.Product.FirstOrDef

ADO.NET Entity Framework深入分析, Part 5

前面的Part 1-4的文章,介绍了Entity Data Model.Entity SQL.ObjectQuery.EntityCommand.LINQ to Entities等等及其代码演示.Part 4主要演示如何通过相关技术或Debug工具,如SQL Server Profiler.ToTraceString 方法.eSqlBlast 工具.LINQPad工具等等,来查看生成的T-SQL脚本.本篇文章Part 5 演示如何新增.更新和删除数据实体,并相应更新数据库. 增加.更新和删除实体

ADO.NET Entity Framework深入分析, Part 4

Entity Data Model 是一个概念模型,所有Entity SQL和LINQ to Entities 查询将最终转化为T-SQL的脚本,从数据库中查询数据.这里演示了几种方法来查看生成的T-SQL,有助于Debug或分析问题. 1.使用SQL Server Profiler 工具 与LINQ to SQL比较而言,ObjectContext 类没有提供Log属性或者通用的log机制,因此,无法在Visual Studio 中跟踪所有的T-SQL语句. 如果你想查看所有执行的T-SQL语

ADO.NET Entity Framework(1)介绍

目录 1 概念 1 2 ADO.NET Entity Framework 2 2.1 架构 2 2.2 说明 2 2.3 EntityConnection 4 2.4 EntityCommand 5 2.5 通过EntityDataReader 方式的数据访问 6 2.6 通过ObjectContext返回ObjectQuery<T> 方式的数据访问 9 概念 LINQ to Entities 一种 LINQ 技术,使开发人员可以使用 LINQ 表达式和 LINQ 标准查询运算符,针对实体数据

ado.net entity framework查询性能比较

关于ado.net entity framework 性能比较网上也有很多,这里我只是初步的 介绍下ado.net entity framework使用不同的方法查询数据的不同性能 第一部分:重复查询单个实体 第一种:Linq To Entitiess 代码如下: static void Main(string[] args) { DateTime time1; DateTime time2; time1 = DateTime.Now; NorthwindEntities context = n

在ADO.NET Entity Framework 4中使用枚举

枚举(Enum)是一种常用的类型,如用于表示状态.类型等参数.但目前它不 会被官方地在ADO.NET Entity Framework中进行支持.本文介绍的是通过复杂类 型(Complex Types)在ADO.NET Entity Framework 4中使用枚举. 这种方法需要使用POCO类,而不能使用Visual Studio自动生成的类.因为我 们需要手动为复杂类型编写代码. 数据库脚本: 1 if exists (select 1 2 from sysobjects 3 where i

ADO.NET Entity Framework 4中枚举的使用

  本文将通过ADO.NET Entity Framework 4中枚举的使用介绍,带领大家走进ADO.NET的世界. 枚举(Enum)是一种常用的类型,如用于表示状态.类型等参数.但目前它不会被官方地在ADO.NET Entity Framework中进行支持.本文介绍的是通过复杂类型(Complex Types)在ADO.NET Entity Framework 4中使用枚举. 这种方法需要使用POCO类,而不能使用Visual Studio自动生成的类.因为我们需要手动为复杂类型编写代码.

自定义Unity对象生命周期管理集成ADO.NET Entity Framework

在Unity中,从Unity 取得的实例为 Transient.如果你希望使用多线程方式,就需要在组成时使用lifecycle参数,这时候取出的组件就不再是同一个了.在Unity IOC中,它支持我们对于组件的实例进行控制,也就是说我们可以透明的管理一个组件拥有多少个实例.Unity IOC容器提供了如下几种生命处理方式:# Singleton:一个组件只有一个实例被创建,所有请求的客户使用程序得到的都是同一个实例.# Transient:这种处理方式与我们平时使用new的效果是一样的,对于每次

Microsoft SQL Server Compact 4.0&amp;&amp;ADO.NET Entity Framework 4.1&amp;&amp;MVC3

原文:Microsoft SQL Server Compact 4.0&&ADO.NET Entity Framework 4.1&&MVC3 最近重新查看微软MvcMusicStore-v3.0的源代码,发现忽略了很多重要的东西,特别是数据访问那一部分. 首先Microsoft SQL Server Compact 4.0 详细的介绍和下载地址 链接:http://www.microsoft.com/zh-cn/download/details.aspx?id=17876