What is the proxy meaning in EntityFramework?












17















I've used EntityFramework as an ORM in my projects and I don't have any problem in using this technology. I heard EntityFramework creates a proxy. I want to know WHAT proxy this ORM creates? What it does? And, when EF creates it? In the other words, what is the meaning of term "proxy" frequently being used in ORM topics.










share|improve this question




















  • 1





    EF doesn't always create proxies. You can turn that off, which you might want to do if you eager load, or if you serialize the entities (e.g. for use in WCF).

    – CRAGIN
    Aug 25 '11 at 13:00











  • I accepted the provided by Jonas, But I want to hear more from all experts.

    – saber
    Aug 25 '11 at 17:21
















17















I've used EntityFramework as an ORM in my projects and I don't have any problem in using this technology. I heard EntityFramework creates a proxy. I want to know WHAT proxy this ORM creates? What it does? And, when EF creates it? In the other words, what is the meaning of term "proxy" frequently being used in ORM topics.










share|improve this question




















  • 1





    EF doesn't always create proxies. You can turn that off, which you might want to do if you eager load, or if you serialize the entities (e.g. for use in WCF).

    – CRAGIN
    Aug 25 '11 at 13:00











  • I accepted the provided by Jonas, But I want to hear more from all experts.

    – saber
    Aug 25 '11 at 17:21














17












17








17


2






I've used EntityFramework as an ORM in my projects and I don't have any problem in using this technology. I heard EntityFramework creates a proxy. I want to know WHAT proxy this ORM creates? What it does? And, when EF creates it? In the other words, what is the meaning of term "proxy" frequently being used in ORM topics.










share|improve this question
















I've used EntityFramework as an ORM in my projects and I don't have any problem in using this technology. I heard EntityFramework creates a proxy. I want to know WHAT proxy this ORM creates? What it does? And, when EF creates it? In the other words, what is the meaning of term "proxy" frequently being used in ORM topics.







c# .net entity-framework orm proxy






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 2 at 3:53









Cœur

19k9112154




19k9112154










asked Aug 25 '11 at 11:13









sabersaber

3,10274276




3,10274276








  • 1





    EF doesn't always create proxies. You can turn that off, which you might want to do if you eager load, or if you serialize the entities (e.g. for use in WCF).

    – CRAGIN
    Aug 25 '11 at 13:00











  • I accepted the provided by Jonas, But I want to hear more from all experts.

    – saber
    Aug 25 '11 at 17:21














  • 1





    EF doesn't always create proxies. You can turn that off, which you might want to do if you eager load, or if you serialize the entities (e.g. for use in WCF).

    – CRAGIN
    Aug 25 '11 at 13:00











  • I accepted the provided by Jonas, But I want to hear more from all experts.

    – saber
    Aug 25 '11 at 17:21








1




1





EF doesn't always create proxies. You can turn that off, which you might want to do if you eager load, or if you serialize the entities (e.g. for use in WCF).

– CRAGIN
Aug 25 '11 at 13:00





EF doesn't always create proxies. You can turn that off, which you might want to do if you eager load, or if you serialize the entities (e.g. for use in WCF).

– CRAGIN
Aug 25 '11 at 13:00













I accepted the provided by Jonas, But I want to hear more from all experts.

– saber
Aug 25 '11 at 17:21





I accepted the provided by Jonas, But I want to hear more from all experts.

– saber
Aug 25 '11 at 17:21












2 Answers
2






active

oldest

votes


















28














A proxy in the ORM world is an automatically generated type that inherits from your domain object type. The proxy represents an instance which has not been populated with data from the database yet, but only knows its own ID. Whenever a property which is mapped to the database is accessed, the proxy subclass will carry out the load from the database, so that the load is transparent to the client code.



Proxies are typically created when you have a relationship property between two entities which is lazily loaded. E.g. when you access the user.Address property, what is really returned is an Address proxy object. Only once you access a property of that object (e.g. user.Address.StreetName) the Address object proper will be loaded.






share|improve this answer

































    4














    See Working with Proxy Classes in this tutorial:
    http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application






    share|improve this answer



















    • 1





      I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

      – batpox
      Mar 21 '17 at 9:35











    • True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

      – Bronek
      Dec 31 '18 at 0:21











    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%2f7189386%2fwhat-is-the-proxy-meaning-in-entityframework%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    28














    A proxy in the ORM world is an automatically generated type that inherits from your domain object type. The proxy represents an instance which has not been populated with data from the database yet, but only knows its own ID. Whenever a property which is mapped to the database is accessed, the proxy subclass will carry out the load from the database, so that the load is transparent to the client code.



    Proxies are typically created when you have a relationship property between two entities which is lazily loaded. E.g. when you access the user.Address property, what is really returned is an Address proxy object. Only once you access a property of that object (e.g. user.Address.StreetName) the Address object proper will be loaded.






    share|improve this answer






























      28














      A proxy in the ORM world is an automatically generated type that inherits from your domain object type. The proxy represents an instance which has not been populated with data from the database yet, but only knows its own ID. Whenever a property which is mapped to the database is accessed, the proxy subclass will carry out the load from the database, so that the load is transparent to the client code.



      Proxies are typically created when you have a relationship property between two entities which is lazily loaded. E.g. when you access the user.Address property, what is really returned is an Address proxy object. Only once you access a property of that object (e.g. user.Address.StreetName) the Address object proper will be loaded.






      share|improve this answer




























        28












        28








        28







        A proxy in the ORM world is an automatically generated type that inherits from your domain object type. The proxy represents an instance which has not been populated with data from the database yet, but only knows its own ID. Whenever a property which is mapped to the database is accessed, the proxy subclass will carry out the load from the database, so that the load is transparent to the client code.



        Proxies are typically created when you have a relationship property between two entities which is lazily loaded. E.g. when you access the user.Address property, what is really returned is an Address proxy object. Only once you access a property of that object (e.g. user.Address.StreetName) the Address object proper will be loaded.






        share|improve this answer















        A proxy in the ORM world is an automatically generated type that inherits from your domain object type. The proxy represents an instance which has not been populated with data from the database yet, but only knows its own ID. Whenever a property which is mapped to the database is accessed, the proxy subclass will carry out the load from the database, so that the load is transparent to the client code.



        Proxies are typically created when you have a relationship property between two entities which is lazily loaded. E.g. when you access the user.Address property, what is really returned is an Address proxy object. Only once you access a property of that object (e.g. user.Address.StreetName) the Address object proper will be loaded.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Aug 25 '11 at 11:24

























        answered Aug 25 '11 at 11:18









        Jonas HøghJonas Høgh

        7,34311739




        7,34311739

























            4














            See Working with Proxy Classes in this tutorial:
            http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application






            share|improve this answer



















            • 1





              I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

              – batpox
              Mar 21 '17 at 9:35











            • True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

              – Bronek
              Dec 31 '18 at 0:21
















            4














            See Working with Proxy Classes in this tutorial:
            http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application






            share|improve this answer



















            • 1





              I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

              – batpox
              Mar 21 '17 at 9:35











            • True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

              – Bronek
              Dec 31 '18 at 0:21














            4












            4








            4







            See Working with Proxy Classes in this tutorial:
            http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application






            share|improve this answer













            See Working with Proxy Classes in this tutorial:
            http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Aug 25 '11 at 23:06









            tdykstratdykstra

            4,92221616




            4,92221616








            • 1





              I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

              – batpox
              Mar 21 '17 at 9:35











            • True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

              – Bronek
              Dec 31 '18 at 0:21














            • 1





              I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

              – batpox
              Mar 21 '17 at 9:35











            • True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

              – Bronek
              Dec 31 '18 at 0:21








            1




            1





            I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

            – batpox
            Mar 21 '17 at 9:35





            I know that often links are frowned upon in SO answers, but this is a very useful tutorial.

            – batpox
            Mar 21 '17 at 9:35













            True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

            – Bronek
            Dec 31 '18 at 0:21





            True, useful link. Here another one: docs.microsoft.com/pl-pl/ef/ef6/fundamentals/proxies

            – Bronek
            Dec 31 '18 at 0:21


















            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%2f7189386%2fwhat-is-the-proxy-meaning-in-entityframework%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

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            Npm cannot find a required file even through it is in the searched directory