避免 Select 1+n 问题

发布于 2024-12-23 07:36:06 字数 173 浏览 1 评论 0原文

我想在页面上列出所有项目。对于每个项目,我想列出给定项目的所有标签。我有哪些加快速度的选择。简单的实现会生成 1+n 个选择查询。

我可以使用投影强制 linq-to-sql 来获取一个查询中的所有数据吗?

我应该将其拆分并查询项目和一次查询标签,然后放入字典中并在我的视图中查找吗?(看起来像黑客)

I want to list all projects on a page. For each project I want to list all tags for given project. What are my options for speeding this up. The naive implementation generates 1+n select queries.

Can I with a projection force linq-to-sql to fetch all data in one query?

Should I split it up and make a query for projects and one query for tags and put in a dictionary and lookup in my view?(seems like a hack)

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

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

发布评论

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

评论(1

不念旧人 2024-12-30 07:36:06

使用 LoadOptions 功能:

    MyDataContext db = new MyDataContext();
    DataLoadOptions options = new DataLoadOptions();
    options.LoadWith<Project>(p => p.Tags);
    db.LoadOptions = options;

之后每个加载项目实体的查询也会下载标签。

Use LoadOptions feature:

    MyDataContext db = new MyDataContext();
    DataLoadOptions options = new DataLoadOptions();
    options.LoadWith<Project>(p => p.Tags);
    db.LoadOptions = options;

After that each query loading Project entity will download Tags as well.

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