Linq对象引用简单介绍

在向大家详细介绍Linq对象引用之前,首先让大家了解下对象标识,然后全面介绍Linq对象引用。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站制作、黄平网络推广、成都小程序开发、黄平网络营销、黄平企业策划、黄平品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供黄平建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

对象标识

◆运行库中的对象具有唯一标识。引用同一对象的两个变量实际上是引用此对象的同一实例。你更改一个变量后,可以通过另一个变量看到这些更改。

◆关系数据库表中的行不具有唯一标识。由于每一行都具有唯一的主键,因此任何两行都不会共用同一键值。

实际上,通常我们是将数据从数据库中提取出来放入另一层中,应用程序在该层对数据进行处理。这就是 LINQ to SQL 支持的模型。将数据作为行从数据库中提取出来时,你不期望表示相同数据的两行实际上对应于相同的行实例。如果您查询特定客户两次,您将获得两行数据。每一行包含相同的信息。

对于对象。你期望在你反复向 DataContext 索取相同的信息时,它实际上会为你提供同一对象实例。你将它们设计为层次结构或关系图。你希望像检索实物一样检索它们,而不希望仅仅因为你多次索要同一内容而收到大量的复制实例。

在 LINQ to SQL 中,DataContext 管理对象标识。只要你从数据库中检索新行,该行就会由其主键记录到标识表中,并且会创建一个新的对象。只要您检索该行,就会将原始对象实例传递回应用程序。通过这种方式,DataContext 将数据库看到的标识(即主键)的概念转换成相应语言看到的标识(即实例)的概念。应用程序只看到处于第一次检索时的状态的对象。新数据如果不同,则会被丢弃。

LINQ to SQL 使用此方法来管理本地对象的完整性,以支持开放式更新。由于在最初创建对象后唯一发生的更改是由应用程序做出的,因此应用程序的意向是很明确的。如果在中间阶段外部某一方做了更改,则在调用 SubmitChanges() 时会识别出这些更改。

以上来自MSDN,的确,看了有点“正规”,下面我用两个例子说明一下。

Linq对象引用

在第一个示例中,如果我们执行同一查询两次,则每次都会收到对内存中同一Linq对象引用。很明显,cust1和cust2是同一个Linq对象引用。

 
 
 
  1. Customer cust1 = db.Customers.First(c => c.CustomerID == "BONAP");  
  2. Customer cust2 = db.Customers.First(c => c.CustomerID == "BONAP"); 

下面的示例中,如果您执行返回数据库中同一行的不同查询,则您每次都会收到对内存中同一Linq对象引用。cust1和cust2是同一个Linq对象引用,但是数据库查询了两次。

 
 
 
  1. Customer cust1 = db.Customers.First(c => c.CustomerID == "BONAP");  
  2. Customer cust2 = (  
  3. from o in db.Orders  
  4. where o.Customer.CustomerID == "BONAP"  
  5. select o )  
  6. .First()  
  7. .Customer; 

新闻名称:Linq对象引用简单介绍
文章位置:http://www.mswzjz.cn/qtweb/news28/398778.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能