Heim > Datenbank > MySQL-Tutorial > Hauptteil

Entity Framework学习初级篇2

WBOY
Freigeben: 2016-06-07 15:49:10
Original
1307 Leute haben es durchsucht

Entity Framework 学习初级篇2--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍 本节,简单的介绍EF中的ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager这个几个比较重要的类,它们都位于System.Data.Entity

Entity Framework 学习初级篇2--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍

本节,简单的介绍EF中的ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager这个几个比较重要的类,它们都位于System.Data.Entity.dll下的System.Data.Objects命名空间下。在后续的章节中,我们经常会用到它们的某些方法,以便完成我们的某些操作或目的。本节,简单的说明一下以后我们可能会用到的各个类的方法,以方便我们后续的学习。

ObjectContext封装 .NET Framework 和数据库之间的连接。此类用作“创建”、“读取”、“更新”和“删除”操作的网关。

ObjectContext类为主类,用于与作为对象(这些对象为EDM 中定义的实体类型的实例)的数据进行交互。

ObjectContext类的实例封装以下内容:

l 到数据库的连接,以EntityConnection 对象的形式封装。

l 描述该模型的元数据,以MetadataWorkspace 对象的形式封装。

l 用于管理缓存中持久保存的对象的ObjectStateManager 对象。

ObjectContext类的成员方法以说明如下所示:

l AcceptAllChanges()

接受所有对该实体对象的更改

l AddObject(string,object)

将实体对象添加到制定的实体容器中

l ApplyPropertyChanges(string,object)

将以指派的实体对象属性的更改应用到容器中对应的原对象。

l Attach(System.Data.Objects.DataClasses.IEntityWithKey entity)

将带主键的实体对象附加到默认的容器中

l Attach(string,object)

将实体对象附加到指定的实体容器中

l CreateEntityKey(string,object)

给指定的实体对象创建实体主键或如果已存在实体主键,则直接返回该实体的主键

l CreateQuery(string,params ObjectParameter[])

从给定的查询字符串创建ObjectQuery对象。

l DeleteObject(object)

删除指定的实体对象

l Detach(object)

移除指定的实体对象

l ExecuteFunction(string,params ObjectParameter[])

对默认容器执行给定的函数。

l GetObjectByKey(System.Data.EntityKey key)

通过主键KEY从 ObjectStateManager 中检索对象(如果存在);否则从存储区中检索。

l Refresh(System.Data.Objects.RefreshMode refreshMode, object entity)

按指定持久更新模式,使用指定实体的存储区数据更新ObjectStateManager。。

l Refresh(System.Data.Objects.RefreshMode refreshMode, System.Collections.IEnumerable collection)

按指定持久处理模式,使用指定实体集的存储区数据更新ObjectStateManager。

l SaveChanges(bool )

将所有更新持久保存到存储区中。参数是客户端事务支持所需的参数。参数为true则在更新后自动将更改应用到ObjectStateManager中的实体。如果为false,则在更新后还需要调用AcceptAllChanges()以便更新ObjectStateManager中的实体。

l SaveChanges()

将所有更新持久保存到存储区中

l TryGetObjectByKey(System.Data.EntityKey,out object)

尝试从指定实体主键返回该实体

以上各个方法的具体用法,将在后面介绍。

接着,再看看有用的类ObjectQuery。

ObjectQuery有个有用的方法ToTraceString(),这个方法用于追踪所执行的SQL语句,通过此方法我们可以获取所执行的SQL语句,以便我们查看、分析具体执行的SQL语句。(类似Nhibernate配置文件中的showsql节)

再了解一下ObjectStateEntry。

ObjectStateEntry维护实体实例或关系实例的状态(已添加、已删除、已分离、已修改或未更改)、键值和原始值。还管理已修改属性的列表。其包含一下方法:

l AcceptChanges

接受当前值作为原始值,并将实体标记为Unchanged()。

l Delete

将实体标记为Deleted()。如果实体处于 Added()()() 状态,它将为Detached()。

l GetModifiedProperties

返回标记为Modified()的属性名称。

l SetModified

将状态设置为Modified()。

l SetModifiedProperty

将指定的属性标记为Modified()。

接着,再看看ObjectStateManager。

ObjectStateManager用于维护对象映射、对象状态/标识管理以及实体实例或关系实例的持久性。

l GetObjectStateEntries

获取给定EntityState的ObjectStateEntry集合。

l GetObjectStateEntry

获取给定的EntityKey 对应的ObjectStateEntry

现在,几个重要的类简单介绍完毕。后面,我们将具体学习它们的使用。


原文:http://www.shangxueba.com/jingyan/104559.html


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!