加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

C#-EF v1的加载举动?

发布时间:2021-01-25 19:10:14 所属栏目:编程 来源:网络整理
导读:我提出的另一个实体框架(ADO.NET)题目. 我正在行使EF1(哪里没有选择),而且有一个MySQL数据库作为后端. 一个简朴的题目我真的找不到令人满足的谜底: 加载到底必要做什么? IE.,当我有一个实体并想通过其子工具列举时,说我有一个实体“ Group”,而且它有一个

我提出的另一个实体框架(ADO.NET)题目.
我正在行使EF1(哪里没有选择),而且有一个MySQL数据库作为后端.

一个简朴的题目我真的找不到令人满足的谜底:

加载到底必要做什么? IE.,当我有一个实体并想通过其子工具列举时,说我有一个实体“ Group”,而且它有一个子代“ User”,我想从g.Users中的n中举办“ n.UserID = 4选择n“,我起主要挪用g.Users.Load();

这有点烦人,由于当我对未加载的荟萃举办查询时,我但愿EF自动加载它-至少会抛出一些非常,而不只仅是返回0功效吗?

我不得不处理赏罚加载的另一种环境:
我有一个查询:

from n in Users where n.Group.Name == "bla" select n

因为某些缘故起因,纵然正确配置了n.GroupID(组的键),它也无法为n.Group提供空指针.同样,当我之前做Server.Groups.Load()(组是一台处事器的子级)时,它也可以事变.

关于何时挪用哪个荟萃的Load()是否有确切的政策?

再次感激你,
麦可 最佳谜底 在第一个版本的实体框架中没有耽误加载.每当您要会见早年未加载的内容时,无论是对单个工具照旧工具荟萃的引用,都必需明晰地汇报它加载该引用. Include()选项(来自上面Rup的第一个选项)将实行在一个大型查询和处理赏罚挪用中加载所需的全部数据,功效是Include()执行迟钝.另一种要领(上面的Rup中的第二种要领),搜查然后加载卸载的引用,执行速率更快,而且使我们可以或许将加载限定到所需的范畴.

根基上,我们的计策是仅加载您在初始查询中必需执行的操纵,以最洪流平地低落机能影响.然后,当我们想会见引用的实体或实体集适时,我们将在往后搜查并加载引用.这导致对数据库的查询增多,可是查询速率更快,而且我们仅在必要时加载帮助数据,而不是预加载我们也许必要的全部内容.在一个函数中,沟通的属性也许会被搜查两次,可是它只会被加载一次,而且我们可以确定我们只是在加载它,由于我们正在行使它.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读