当前位置:  开发笔记 > 数据库 > 正文

LINQ-to-Entities中是否有DataContext(不是Linq-to-SQL)?

如何解决《LINQ-to-Entities中是否有DataContext(不是Linq-to-SQL)?》经验,为你挑选了2个好方法。

我最近问了一个关于跟踪Linq-to-Entities的问题

我认为其中一个答案是不正确的,因为它们指的是使用DataContext.LINQ到实体是否有DataContext?如果是这样,我怎么得到它?



1> 小智..:

LINQ to Entities使用ObjectContext,而不是DataContext.

这是EF的简短描述:

LINQ to Entities,ObjectContext类和实体数据模型

LINQ to Entities查询使用对象服务基础结构.所述 的ObjectContext类是主要的类用于与EDM相互作用作为CLR对象.开发人员通过ObjectContext构造一个ObjectQuery实例.通用ObjectQuery类表示返回实例或类型化实体集合的查询.ObjectQuery返回的实体对象由Object Context跟踪,可以使用SaveChanges方法进行更新.

它甚至与LINQ to SQL中的DataContext的工作方式不同.虽然它们都管理连接并跟踪更改,但它们对数据结构和关系的建模方式不同.

不过,我会给出错误答案的海报,因为LINQ to SQL确实引用了"实体",不熟悉EF的人很可能仍然认为他们知道你在说什么.

例如:

LINQ to SQL和DataContext类

DataContext是通过数据库连接映射的所有实体.它跟踪您对所有检索到的实体所做的更改,并维护"身份缓存",以确保使用相同的对象实例表示检索多次的实体.

这可能令人困惑.



2> Amy B..:

显然,LinqToEntities使用ObjectContext而不是DataContext.

令人高兴的是,对象团队制作了一个DataContext,数据团队制作了一个ObjectContext(以及DataQuery vs ObjectQuery等)"Naming很难!"


使用EF4.1更新.net 4,在使用LinqToEntities时,您可能也对DbContext感兴趣.见也.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有