gpt4 book ai didi

entity-framework - Entity Framework 代码优先 - 使用 .Load() 和 .Local 减少往返行程

转载 作者:行者123 更新时间:2023-12-04 06:30:25 25 4
gpt4 key购买 nike

我正在使用 Entity Framework Code Fist 设置一个新应用程序,并且正在寻找尽可能减少到 SQL Server 的往返次数的方法。

当我第一次阅读 .Local 属性 here 时,我对在我的处理管道中尽早关闭整个对象图然后稍后使用 .Local 的可能性感到兴奋,而不必担心产生额外的往返成本。

现在我正在玩它,我想知道是否有任何方法可以在一次往返中删除单个请求所需的所有数据。例如,如果我有一个网页,上面有一些列表、新闻、事件和讨论。有没有一种方法可以在一次往返中将他们 3 个不相关的源表的记录记录到 DbContext 中?互联网上的所有人都认为当单个页面与数据库服务器进行 20 次往返时,这完全没问题吗?我想通过适当的缓存机制可以缓解这个问题。

在一次往返中从 EF 查询返回多个结果时,我确实遇到了 couplecracks,但我不确定这些解决方案的复杂性和成熟度是否值得。

一般来说,在组合要传递给 MVC Controller 的数据集方面,您是否认为最好对您需要的每组记录进行单独的查询,然后使用 EF Caching Provider 或asp.net缓存?

最佳答案

如果需要,可以进行多次 DB 调用。如果您害怕多次往返,您可以编写存储过程并返回多个结果集(不适用于默认 EF 功能)或异步执行查询(同时运行多个分离查询)。无法使用单个 linq 查询加载未实现的数据。

再多一个通知。如果您决定使用异步方法,请确保在每个异步执行中使用单独的上下文实例。异步执行使用单独的线程,上下文不是线程安全的。

关于entity-framework - Entity Framework 代码优先 - 使用 .Load() 和 .Local 减少往返行程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com