Home

I've lost the drill into reference type in the v4.42 when using html rendering

ccocco
edited July 2012
Hi,
May be i 've done something but i've just notice that's i've lost the possibility to automatically drill down into properties of the dumped objects.
When i test the v4.31, all is fine.
Is there a way (in .config or else ?) to restore previous rendering of object ?

Thanks

Comments

  • What type of objects are failing to render?

    What happens when you execute the following expression:

    AppDomain.CurrentDomain

    Can you see all the properties and sub-properties?
  • ccocco
    edited August 2012
    Hi, Sorry for the delay, i was in troubles.

    Yes it works : i can see all the properties.
    To be more precise i query on a edmx
  • Hi, again.
    I was able to retrieve an older version of linqpad to make 2 screenshots to compare the rendering :
    v4.31 : http://sdrv.ms/PYqopl
    v4.42 : http://sdrv.ms/RV2RsE

    As you can see there was a lot of properties previously displayed. I query on a edmx with POCO template and i was able to see the generated proxy properties and all the entity collection owned by the object.
    I am rarely interested by the proxy properties (but it can happen) but the lack of the EntityCollection properties is really annoying.
  • edited August 2012
    This change was deliberate: LINQPad 4.31 was actively walking those EntityCollection properties, resulting in potentially hundreds or thousands of queries to the database.

    If you want to see those association properties, you must now tell Entity Framework or LINQPad that you want those columns. The easiest way to do this is to specify the columns you want in the initial query:
    Addresses.Include ("CustomerAddresses").Take(100)
    This is efficient because it tells EF to write the query to include the child entities in a single round-trip. It may not work with POCOs, however, because it may be impossible for LINQPad to infer what you've included. So another solution is to explicitly project the properties you want to see:
    from c in Customers
    select new { c.Name, c.Purchases, c.Projects, ... }
    Finally, you can use the DataGrid mode. In DataGrid mode, LINQPad creates columns for each of the association properties, with hyperlinks in each cell. When you click the hyperlink, the collection lazily populates and the child entities appear.

    Regards
  • Thanks for the explanation.
    So as i prefer the previous way, is there a manner to prevent LinqPad to auto update to keep my 4.31 version ?
  • Yes: run LINQPad with the -noupdate and -noforward switches. But be prepared for lots of database round-trips!
  • That's ok for me.
    I often run queries on schema i don't know very well to help to rewrite them and i don't know all the properties of all the objects implied in the runned queries.
    I found that's a good (and lazy) way to discover them.

    Thanks for the answer.
  • Bear in mind you also have the Schema Explorer in the left. And Intellisense (in the Pro and Premium editions).
  • Yes, i know. i've the Premium edition
    But often the name of the field don't reveal its contents.

    I take this opportunity to thanks you for this marvellous tool you made
Sign In or Register to comment.