首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为EFCore切换热巧克力中的开关

如何为EFCore切换热巧克力中的开关
EN

Stack Overflow用户
提问于 2021-12-16 18:29:33
回答 1查看 578关注 0票数 -1

因此,我试图根据来自客户端的EfCore请求是否实际包括相关对象,来了解如何告诉IQueryable何时对IQueryable对象应用GraphQl。

示例:

  • 2类: Person,Payment

  • 论文保存在两个不同的表中,相关人员->支付在一个到多个关系的

中。

  • I设置了一个GraphQl查询,用于检索数据库中的所有人员:

UseFiltering public IQueryable GetPeople(ScopedService DbAccess db) {返回db.People;}

  • -它只返回People表ex:
  • :{people{sso,payments{compayName}响应:{“数据”:{“人员”:{ "sso":"000-00-0003",“支付”:null } }

  • 为了得到我的GetPeople功能需要更改为

UseFiltering public IQueryable GetPeople(ScopedService DbAccess db) {返回db.People.Include(p => p.Payments);}

  • 可以工作,但当付款不是请求的一部分时(因为每次都会运行包含),就会产生不必要的压力。

我想做的是:

代码语言:javascript
复制
    var baseQuery = db.People;
        if (graphqlRequestIncludePayments)
        {
            baseQuery.Include(p => p.Payments);
        }
    return baseQuery;

但我不知道如何检查GraphQl查询,以确定是否请求付款。我知道GraphQl会在返回给使用者之前删除多余的数据,但这可能会浪费服务器端的大量带宽和内存。

我觉得在HotChocultObjectType.Configure函数中有一种方法可以做到这一点,但我看不出是怎么做到的。

任何帮助都将不胜感激,谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-23 15:15:39

托比亚斯·腾格勒是正确的,这应该通过预测来完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70383939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档