ADO.NET对象服务还是比较常用的,于是我研究了一下,在这里拿出来和大家分享一下,其实ADO.NET对象服务是实体框架 的一个组件,您可使用它来查询、插入、更新和删除数据,它表示为作为实体类型实例的强类型 CLR 对象。
#T#ADO.NET对象服务支持针对实体数据模型 (EDM) 中定义的类型进行的语言集成查询 (LINQ) 和 Entity SQL 查询。对象服务将返回的数据具体化为对象,并将对象更改传播回数据源。它还提供了跟踪更改、将对象绑定到控件以及处理并发问题的功能。对象服务由 System.Data.Objects 和 System.Data.Objects.DataClasses 命名空间中的类来实现。
对象上下文
ObjectContext 类是以对象(这些对象是 EDM 中定义的实体类型的实例)的形式与数据进行交互的主要类。ObjectContext 类的实例封装以下内容:
◆到数据库的连接,以 EntityConnection 对象的形式封装。
◆描述模型的元数据,以 MetadataWorkspace 对象的形式封装。
◆在创建、更新和删除操作过程中跟踪对象的 ObjectStateManager 对象。
实体框架 工具使用概念架构定义语言 (CSDL) 文件并生成对象层代码。此代码用于以对象形式使用实体数据以及利用对象服务功能。所生成的代码包括以下数据类:
◆类型化 ObjectContext 类。此类表示模型的 EntityContainer,它派生自 ObjectContext。
◆表示实体类型并从 EntityObject 继承的类。
◆表示复杂类型并从 ComplexObject 继承的类。
ObjectContext 类不是线程安全的。在多线程方案中无法确保 ObjectContext 中的数据对象的完整性。ADO.NET对象服务支持对 实体框架 进行编程的以下行为:
1.以对象形式查询数据
通过对象服务,您可以使用 LINQ、Entity SQL 或查询生成器方法针对 实体数据模型 来执行查询并以对象的形式返回数据。有关更多信息,请参见对象查询(实体框架)。
2.形成查询结果
默认情况下,对象服务只返回查询中专门请求的对象。当对象之间存在关系时,可以指定查询是否返回相关对象。还可以在后续请求中加载相关对象。有关更多信息,请参见形成查询结果(实体框架)。
3.使用生成器方法编写查询
对象服务在 ObjectQuery 上提供方法,用于构造与 Entity SQL 和 LINQ to Entities 查询等效的查询。有关更多信息,请参见查询生成器方法(实体框架)。
4.添加、更改和删除对象
对象服务将数据对象保存在内存中,您可以在对象上下文中添加、修改和删除对象。对对象所做的更改是由对象上下文跟踪的。有关更多信息,请参见添加、修改和删除对象(实体框架)。
5.将更改保存到数据源
对象服务在对象上下文中缓存对对象的更改。当显式请求时,对象服务将这些更改保存回数据源。有关更多信息,请参见保存更改和管理并发(实体框架)。
6.将对象绑定到控件
对象服务可以将对象绑定到支持数据绑定的控件,例如 DataGridView 控件。有关更多信息,请参见将对象绑定到控件(实体框架)。