I've just came across an interesting feature of LLBLGen Pro for .NET 2.0 : Debugger Visualizers.
The visualizers are standard part of LLBLGen installation except they are not configured during installation. Since the functionality is quite usefull, this is an exceprt from LLBLGen documentation:
------
.NET 2.0 / VS.NET 2005 specific: Debugger Visualizers
VS.NET 2005 offers the ability to enable visualizer objects for given types during debugging sessions called Debugger visualizers. If you've already done some debugging inside VS.NET 2005 you've seen some of them already: the string debugger visualizer for example is one of the debugger visualizers shipped with VS.NET which can be activated when the execution is paused and you hover over a type with the mouse and click the magnifyer glass icon.
For several types in the LLBLGen Pro generated code and runtime library, Debugger Visualizers are developed so debugging code using LLBLGen Pro generated code is easier.
Installation
Copy the SD.LLBLGen.Pro.DebugVisualizers.dll from the folder RuntimeLibraries\DotNET20\DebugVisualizers to the folder:
C:\documents and settings\your user name\My Documents\Visual Studio 2005\Visualizers\ Also copy the ORMSupportClasses dll and the DQE dll of your choice to that folder.
You've to restart VS.NET 2005 to make them available to you. In a debug session, when you hit a breakpoint, you can hover your mouse over a variable of a type of any of the supported types below and you'll see a magnifyer glass which allows you to open the debug visualizer for that type with the data in that instance.
Debug visualizers included
The following debug visualizers are included:
Predicate/PredicateExpression
The predicate / Predicate expression visualizer visualizes the predicate as a WHERE clause. It will use a pseudo DQE and pseudo DB specific creator to create a string which is displayed in a viewer. Also displayed are the parameters of the complete filter and the values of these parameters.
EntityCollection (Selfservicing/adapter)
Simple form with a DataGrid set to readonly/AllowNavigation set to false (to avoid lazy loading) for SelfServicing entity collections and with AllowNavigation set to true for Adapter, which displays the collection using normal databinding. The form also shows a textbox with the type the collection is set for, which is typically the type the factory produces.
RelationCollection / Relationpredicatebucket
Similar to PredicateExpression, though it will show the actual SQL generated. The RelationPredicateBucket visualizer has a tab control with both a visualizer for the PredicateExpression as for the RelationCollection.
SortExpression
Simple visualizer which shows the sort expression in a textbox, similar to the predicate expression visualizer
GroupByCollection
Simple viewer which views the grouped fields, one on each line and the HAVING clause as a normal predicate expression.
PrefetchPath
The visualizer for prefetch paths displays the path as nodes in a tree. To handle polymorphic paths, the path element is represented by a node, and all nodes added to that path element are added as nodes. The visualizer uses reflection to get a hold on the EntityType type definition to produce proper names for the node destinations/types to fetch.
Expression
The visualizer for the expression is similar to the PredicateVisualizer: it shows the expression without beautification and the parameters.
--------------