Use GetAllIncluding to get multiple levels in a single call












0















Using ABP Repository pattern we are trying to create a single query to retrieve a set of entities, along with their children, and the childrens children



Entity X -> one to many Entity Y -> one to many Entity Z



(think Invoice > InvoiceItem > InvoiceItemParts for example)



The Abp repository pattern provides for retrieving at least 1 set of children using



result = _repositoryInvoice.GetAllIncluding(x => x.InvoiceItem)



is there a way using LINQ to include InvoiceItemParts in this 1 query? If not, what is the recommended way to retrieve all child nav properties and all levels using a single call.



The main goal is making it so we don't have to make multiple round trips to the DB when accessing the child properties along with the child properties of those children.



thanks
jasen










share|improve this question























  • I don't know about ABP Repository, but it sounds like you ask about dbSetX.Include(x => x.ItemsY.Select(y => y.ItemsZ)) for EF6 or dbSetX.Include(x => x.ItemsY).ThenInclude(y => y.ItemsZ) for EF core. Did I misinterpret your problem?

    – grek40
    Nov 15 '18 at 7:12











  • There is no such method (that includes a variable number of navigation properties). The generated SQL has to be determined solely by the schema in order for EF to be generated, what you want (I think) is some way to include one more entity type if you got some entities referencing it, but then EF would have to retrieve data while generating the query, which it will not do.

    – DevilSuichiro
    Nov 15 '18 at 7:27











  • I wasn't looking for a variable number of properties, just basically trying to figure out what the equivalent to "ThenInclude" might be in AspNetBoilerPlate. Thank you!

    – Feech
    Nov 15 '18 at 12:26
















0















Using ABP Repository pattern we are trying to create a single query to retrieve a set of entities, along with their children, and the childrens children



Entity X -> one to many Entity Y -> one to many Entity Z



(think Invoice > InvoiceItem > InvoiceItemParts for example)



The Abp repository pattern provides for retrieving at least 1 set of children using



result = _repositoryInvoice.GetAllIncluding(x => x.InvoiceItem)



is there a way using LINQ to include InvoiceItemParts in this 1 query? If not, what is the recommended way to retrieve all child nav properties and all levels using a single call.



The main goal is making it so we don't have to make multiple round trips to the DB when accessing the child properties along with the child properties of those children.



thanks
jasen










share|improve this question























  • I don't know about ABP Repository, but it sounds like you ask about dbSetX.Include(x => x.ItemsY.Select(y => y.ItemsZ)) for EF6 or dbSetX.Include(x => x.ItemsY).ThenInclude(y => y.ItemsZ) for EF core. Did I misinterpret your problem?

    – grek40
    Nov 15 '18 at 7:12











  • There is no such method (that includes a variable number of navigation properties). The generated SQL has to be determined solely by the schema in order for EF to be generated, what you want (I think) is some way to include one more entity type if you got some entities referencing it, but then EF would have to retrieve data while generating the query, which it will not do.

    – DevilSuichiro
    Nov 15 '18 at 7:27











  • I wasn't looking for a variable number of properties, just basically trying to figure out what the equivalent to "ThenInclude" might be in AspNetBoilerPlate. Thank you!

    – Feech
    Nov 15 '18 at 12:26














0












0








0








Using ABP Repository pattern we are trying to create a single query to retrieve a set of entities, along with their children, and the childrens children



Entity X -> one to many Entity Y -> one to many Entity Z



(think Invoice > InvoiceItem > InvoiceItemParts for example)



The Abp repository pattern provides for retrieving at least 1 set of children using



result = _repositoryInvoice.GetAllIncluding(x => x.InvoiceItem)



is there a way using LINQ to include InvoiceItemParts in this 1 query? If not, what is the recommended way to retrieve all child nav properties and all levels using a single call.



The main goal is making it so we don't have to make multiple round trips to the DB when accessing the child properties along with the child properties of those children.



thanks
jasen










share|improve this question














Using ABP Repository pattern we are trying to create a single query to retrieve a set of entities, along with their children, and the childrens children



Entity X -> one to many Entity Y -> one to many Entity Z



(think Invoice > InvoiceItem > InvoiceItemParts for example)



The Abp repository pattern provides for retrieving at least 1 set of children using



result = _repositoryInvoice.GetAllIncluding(x => x.InvoiceItem)



is there a way using LINQ to include InvoiceItemParts in this 1 query? If not, what is the recommended way to retrieve all child nav properties and all levels using a single call.



The main goal is making it so we don't have to make multiple round trips to the DB when accessing the child properties along with the child properties of those children.



thanks
jasen







entity-framework automapper






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 15 '18 at 2:01









FeechFeech

9919




9919













  • I don't know about ABP Repository, but it sounds like you ask about dbSetX.Include(x => x.ItemsY.Select(y => y.ItemsZ)) for EF6 or dbSetX.Include(x => x.ItemsY).ThenInclude(y => y.ItemsZ) for EF core. Did I misinterpret your problem?

    – grek40
    Nov 15 '18 at 7:12











  • There is no such method (that includes a variable number of navigation properties). The generated SQL has to be determined solely by the schema in order for EF to be generated, what you want (I think) is some way to include one more entity type if you got some entities referencing it, but then EF would have to retrieve data while generating the query, which it will not do.

    – DevilSuichiro
    Nov 15 '18 at 7:27











  • I wasn't looking for a variable number of properties, just basically trying to figure out what the equivalent to "ThenInclude" might be in AspNetBoilerPlate. Thank you!

    – Feech
    Nov 15 '18 at 12:26



















  • I don't know about ABP Repository, but it sounds like you ask about dbSetX.Include(x => x.ItemsY.Select(y => y.ItemsZ)) for EF6 or dbSetX.Include(x => x.ItemsY).ThenInclude(y => y.ItemsZ) for EF core. Did I misinterpret your problem?

    – grek40
    Nov 15 '18 at 7:12











  • There is no such method (that includes a variable number of navigation properties). The generated SQL has to be determined solely by the schema in order for EF to be generated, what you want (I think) is some way to include one more entity type if you got some entities referencing it, but then EF would have to retrieve data while generating the query, which it will not do.

    – DevilSuichiro
    Nov 15 '18 at 7:27











  • I wasn't looking for a variable number of properties, just basically trying to figure out what the equivalent to "ThenInclude" might be in AspNetBoilerPlate. Thank you!

    – Feech
    Nov 15 '18 at 12:26

















I don't know about ABP Repository, but it sounds like you ask about dbSetX.Include(x => x.ItemsY.Select(y => y.ItemsZ)) for EF6 or dbSetX.Include(x => x.ItemsY).ThenInclude(y => y.ItemsZ) for EF core. Did I misinterpret your problem?

– grek40
Nov 15 '18 at 7:12





I don't know about ABP Repository, but it sounds like you ask about dbSetX.Include(x => x.ItemsY.Select(y => y.ItemsZ)) for EF6 or dbSetX.Include(x => x.ItemsY).ThenInclude(y => y.ItemsZ) for EF core. Did I misinterpret your problem?

– grek40
Nov 15 '18 at 7:12













There is no such method (that includes a variable number of navigation properties). The generated SQL has to be determined solely by the schema in order for EF to be generated, what you want (I think) is some way to include one more entity type if you got some entities referencing it, but then EF would have to retrieve data while generating the query, which it will not do.

– DevilSuichiro
Nov 15 '18 at 7:27





There is no such method (that includes a variable number of navigation properties). The generated SQL has to be determined solely by the schema in order for EF to be generated, what you want (I think) is some way to include one more entity type if you got some entities referencing it, but then EF would have to retrieve data while generating the query, which it will not do.

– DevilSuichiro
Nov 15 '18 at 7:27













I wasn't looking for a variable number of properties, just basically trying to figure out what the equivalent to "ThenInclude" might be in AspNetBoilerPlate. Thank you!

– Feech
Nov 15 '18 at 12:26





I wasn't looking for a variable number of properties, just basically trying to figure out what the equivalent to "ThenInclude" might be in AspNetBoilerPlate. Thank you!

– Feech
Nov 15 '18 at 12:26












1 Answer
1






active

oldest

votes


















0














Decided to just create my own custom repository and use EFCore .Include and .ThenInclude directly. Turns out AspNetBoilerPlate has no support for querying navigation properties beyond their immediate children of the root entity being queried.



Microsoft provides some great examples of using .Include and .ThenInclude:



https://docs.microsoft.com/en-us/ef/core/querying/related-data



Good luck!






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311380%2fuse-getallincluding-to-get-multiple-levels-in-a-single-call%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Decided to just create my own custom repository and use EFCore .Include and .ThenInclude directly. Turns out AspNetBoilerPlate has no support for querying navigation properties beyond their immediate children of the root entity being queried.



    Microsoft provides some great examples of using .Include and .ThenInclude:



    https://docs.microsoft.com/en-us/ef/core/querying/related-data



    Good luck!






    share|improve this answer




























      0














      Decided to just create my own custom repository and use EFCore .Include and .ThenInclude directly. Turns out AspNetBoilerPlate has no support for querying navigation properties beyond their immediate children of the root entity being queried.



      Microsoft provides some great examples of using .Include and .ThenInclude:



      https://docs.microsoft.com/en-us/ef/core/querying/related-data



      Good luck!






      share|improve this answer


























        0












        0








        0







        Decided to just create my own custom repository and use EFCore .Include and .ThenInclude directly. Turns out AspNetBoilerPlate has no support for querying navigation properties beyond their immediate children of the root entity being queried.



        Microsoft provides some great examples of using .Include and .ThenInclude:



        https://docs.microsoft.com/en-us/ef/core/querying/related-data



        Good luck!






        share|improve this answer













        Decided to just create my own custom repository and use EFCore .Include and .ThenInclude directly. Turns out AspNetBoilerPlate has no support for querying navigation properties beyond their immediate children of the root entity being queried.



        Microsoft provides some great examples of using .Include and .ThenInclude:



        https://docs.microsoft.com/en-us/ef/core/querying/related-data



        Good luck!







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 15 '18 at 15:28









        FeechFeech

        9919




        9919
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53311380%2fuse-getallincluding-to-get-multiple-levels-in-a-single-call%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Florida Star v. B. J. F.

            Danny Elfman

            Lugert, Oklahoma