Execute LINQ at design time.
LINQ Insight is a powerful visual studio add-in for testing LINQ queries and previewing their result at design-time, LINQ Insight greatly simplifies creating and debugging LINQ queries. It allows you to immediately execute LINQ queries right from your code just as you write them. It supports LINQ to Entities (Entity Framework), LINQ to NHibernate, LINQ to SQL, LinqConnect, LINQ to XML, and LINQ to Objects. LINQ Insight is available in two editions: Standard and Express. The Express Edition is free and allows you to view SQL, generated for LINQ to SQL, LINQ to Entities, LINQ to NHibernate, and LinqConnect queries, with its parameters. The Standard Edition adds the possibility to view and edit the data, returned by LINQ queries.
Debug LINQ Easily - Execute LINQ Queries at Design-time with LINQ Insight.
Do you use LINQ in your projects? Have you ever wanted to try a LINQ query immediately after writing it, to make sure it works correctly? Install LINQ Insight and debug LINQ queries easily! LINQ Insight allows executing LINQ queries at design-time directly from Visual Studio without starting a debug session.
LINQ Insight comes in two editions - free Express edition and Standard edition. The Express edition is a freeware alternative to the different LINQ debug visualizers - it displays SQL and parameters for LINQ to NHibernate, LINQ to SQL, LINQ to Entities, and LinqConnect. LINQ Insight Standard additionally displays the data returned by queries. Data is displayed in a grid, where you can sort, group, and filter this data and even edit it. LINQ Insight also offers you a convenient way to browse the related objects.
LINQ Insight Benefits
LINQ Insight allows you to test LINQ queries at design-time. Unlike different LINQ debug visualizers, LINQ Insight does not require you to start debugging and step to the LINQ query execution for viewing returned data and generated SQL.
LINQ Insight is fully integrated into Visual Studio. You don't need to run external applications and enter your queries to them, just execute LINQ queries right from your code, and view SQL and data without leaving the IDE.
Supported LINQ Providers
LINQ Insight Features:
Wide LINQ support
LINQ Insight supports both usual LINQ queries and queries through extension methods. It also supports anonymous queries, for example, with immediate ToList calls.
Automatic Context Resolving
LINQ Insight resolves context automatically when executing query. It finds the context that can be passed as a parameter, can be a field or a property of the class, etc. The context must have at least a constructor without parameters or a constructor with a string parameter.
Connection String Resolving
LINQ Insight resolves the connection string automatically in most cases. If the context default constructor takes the connection string from the project config file, LINQ Insight can parse it and use the connection string from it.
You can specify custom connection string for LINQ Insight to apply for queries through the used context. Just click the Edit Connection String button on the LINQ Interactive window toolbar and enter the connection string in the opened dialog. User setting overrides the connection string, found automatically.
Custom connection string can be set if LINQ Insight finds the context constructor with the string argument. If LINQ Insight cannot find this or default constuctor, it throws an error when trying to execute a query.
For LINQ to XML, a path to an XML file can be specified as the connection string (using the Edit Connection String button on the LINQ Interactive window toolbar).
If a query depends on some variables, you don't need to replace them with constants. LinqConnect detects these variables and their types, and replaces them with parameters. When you run this query for the first time, LINQ Insight will ask you to specify the parameter values. After that LINQ Insight will remember entered values and will not ask for them when the query is re-executed. You can re-enter new parameter values using the Edit Parameters button on the LINQ Interactive window toolbar.
If you modify a query in the LINQ Interactive window and reexecute it, this modified query will be executed, and the already specified parameter values will be used. However you should not add new variables to the query in LINQ Interactive window. If you need to add another variable to the query, do it in your code and then execute the query from your code.
For LINQ to SQL, LINQ to Entities, and LinqConnect, LINQ Insight displays the SQL generated for the query. You can also see the parameter values used if the SQL uses parameters. Parameters are displayed in comments below the SQL text, and their values are enclosed in square brackets.
The returned data is displayed in a grid, where you can sort and group, and filter this data. LINQ Insight even allows you to edit data for LINQ to SQL, LINQ to Entities, and LinqConnect.
To group the data by any column, drag the column header you want the data to be grouped by to the Group By Box panel. You can also right-click a required column header and select Group By This Column from the menu. The data is automatically displayed in groups that are marked with collapsed nodes. The column header is moved to the Group By Box panel.
To filter data, enter the filter string to the Filter box on the LINQ Interactive window toolbar. After this only the rows containing the entered string in any of the column will be displayed. The string occurrences in the grid are highlighted.
Viewing Related Data
LINQ Insight also offers you a convenient way to browse the related objects. You may browse related objects in two ways. First, you may click the drop-down arrow in the cell with this property, and its contents will be presented in a new grid without hiding the original data. Another way is to click the underlined object (or collection) property in the grid, and the grid will be filled with the contents of this property.
LINQ Insight allows you to edit data, returned by LINQ to SQL, LINQ to Entities, and LinqConnect queries. All the data updating operations are performed through the ORM. Changes are applied to the database only after you click the Apply Changes button. You can edit several objects and then apply changes or discard them.