存储库模式的单例中的数据库上下文

发布于 2024-10-21 15:44:01 字数 264 浏览 1 评论 0原文

我目前设计系统的方式是每个存储库都有自己的数据库上下文。我依赖注入每个存储库的连接字符串。

但是假设 1 个页面调用 2 个或更多 (n) 个存储库,这意味着有 n 个单独的调用进入数据库。使用带有延迟加载的实体框架之类的 ORM,如果我共享 1 个数据库上下文,我的查询是否可以在存储库级别末尾合并到 1 个调用中?

我该如何实现这个目标?有人可以给我一个基本的大纲/结构,说明我如何为所有存储库使用 1 个单一上下文吗?谢谢。

The way I currently design systems is that each repository has its own database context. I dependency inject the connection string for each repository.

But lets say 1 page calls 2 or more (n) repositories, this means there are n seperate calls going to the database. Using ORMs like entity framework with lazy loading, is it possible that my queries can be merged at the end of the repository level into 1 call if I share 1 database context?

How do I accomplish this? Could someone give me a basic outline/structure of how I'd use 1 single context for all repositories? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

守护在此方 2024-10-28 15:44:01

使用实体框架,您的查询将永远不会合并到单个调用中。这是当前 EF 实现的限制。但是,每个 http 请求拥有单一上下文(最佳实践)是一种可行的方法。而不是注入查询字符串注入整个上下文。

With entity framework your queries will never be merged to single call. That is limitation of current EF implementation. But having single context per one http reqeuest (best practice) is way to go. Instead of injecting query string inject whole context.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文