Infinite Loop: LLBLGenProDataSource2 + asp:DropDownList OnDataBinding event

Posts   
 
    
OiNk!
User
Posts: 12
Joined: 13-Mar-2008
# Posted on: 22-Oct-2010 09:51:47   

Hi,

I am getting an infinite loop when binding a dropdownlist to the llblgen datasource. Please assist.

We have recently upgraded our licence from 2.6 to 3.0 and easily converted using the LLBLGen 2.6 convert template to migrate over to version 3. (Great job on the editor BTW)

LLBLGen Pro version: 3 (converted project over from 2.6) Template: Adapter .NET Framework 4 Visual Studio 2010 SQL Server 2008 Windows 7 VM

We don't add the llblgen assemblies to the GAC/Toolbox, but reference from a include folder in our solution instead, so it's committed to sourcecontrol.

Here is the markup:

<llblgenpro:LLBLGenProDataSource2 ID="TitleCollectionDataSource" runat="server" EnablePaging="True"
    CacheLocation="Session" SortingMode="ServerSide" DataContainerType="EntityCollection"
    AdapterTypeName="Data.Rad.DatabaseSpecific.CustomDataAccessAdapter, Data.RadDBSpecific"
    EntityFactoryTypeName="Data.Rad.FactoryClasses.TitleEntityFactory, Data.Rad">
    <SelectParameters>
        <asp:Parameter Name="IsActive" DbType="Boolean" DefaultValue="True" />
    </SelectParameters>
</llblgenpro:LLBLGenProDataSource2>

<asp:DropDownList ID="ddlTitle" runat="server" DataSourceID="TitleCollectionDataSource" 
OnDataBinding="OnDataBinding_ddlTitle" 
    AppendDataBoundItems="true" DataTextField="Name" DataValueField="TitleId">
    <asp:ListItem Text="[Select an Item]" Value=""></asp:ListItem>
</asp:DropDownList> Infinite loop here when datasourceid set!!!

<br/><br/>
But a repeater works fine!
<br/>
<asp:Repeater runat="server" ID="rptTest" DataSourceID="TitleCollectionDataSource">
    <ItemTemplate>
        <li>
            [<%# Eval("TitleId")%>][<%# Eval("Name")%>]
        </li>
    </ItemTemplate>
</asp:Repeater>

Funny thing is the exact same controls work when the dropdownlist is a child control which is bound to a detailsview control, which doesnt make sense.

Here is the output window code which shows the loop that kills my devserver instance, WebDev.Webserver40.exe:

Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.EntityFactoryCore2.Create' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.EntityBase2.GetInheritanceHierarchyType' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateSelectDQ' Method Enter: CreatePagingSelectDQ Method Enter: CreateSelectDQ Method Enter: CreateSelectDQ Generated Sql query: Query: SELECT [AxxessRad].[dbo].[Title].[Description], [AxxessRad].[dbo].[Title].[isActive] AS [IsActive], [AxxessRad].[dbo].[Title].[LastModified], [AxxessRad].[dbo].[Title].[LastModifiedUserId], [AxxessRad].[dbo].[Title].[Metric], [AxxessRad].[dbo].[Title].[Name], [AxxessRad].[dbo].[Title].[TitleId] FROM [AxxessRad].[dbo].[Title] WHERE ( ( ( [AxxessRad].[dbo].[Title].[isActive] = @p1))) Parameter: @p1 : Boolean. Length: 0. Precision: 0. Scale: 0. Direction: Input. Value: True. Method Exit: CreateSelectDQ Method Exit: CreatePagingSelectDQ: no paging. Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Method Enter: DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery Method Enter: DataAccessAdapterBase.OpenConnection Method Exit: DataAccessAdapterBase.OpenConnection Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.EntityFactoryCore2.Create' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.EntityBase2.GetInheritanceHierarchyType' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' The thread '<No Name>' (0xbfsunglasses has exited with code 0 (0x0). Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateEntityInstanceFromReaderRow' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery' Method Exit: DataAccessAdapterBase.ExecuteMultiRowRetrievalQuery Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Method Exit: DataAccessAdapterBase.FetchEntityCollectionInternal(7) Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollection' Method Exit: DataAccessAdapterBase.FetchEntityCollection(sunglasses Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollection' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.LLBLGenProDataSourceView2.ExecuteSelectEntityCollection' Method Enter: DataAccessAdapterBase.CloseConnection Method Exit: DataAccessAdapterBase.CloseConnection Step into: Stepping over non-user code 'System.Web.UI.Control.OnDataBinding' Step into: Stepping over non-user code 'System.Web.UI.WebControls.ListControl.OnDataBinding' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.LLBLGenProDataSourceView2.ExecuteSelectEntityCollection' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.LLBLGenProDataSourceView2.CreateRuntimeFilter' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.LLBLGenProDataSourceView2.ProduceFilterToUse' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.LLBLGenProDataSourceView2.ExecuteSelectEntityCollection' Method Enter: DataAccessAdapterBase.OpenConnection Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.OpenConnection' Method Exit: DataAccessAdapterBase.OpenConnection Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.LLBLGenProDataSourceView2.ExecuteSelectEntityCollection' Method Enter: DataAccessAdapterBase.FetchEntityCollection(sunglasses Method Enter: DataAccessAdapterBase.FetchEntityCollectionInternal(7) Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.EntityFactoryCore2.Create' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.EntityBase2.GetInheritanceHierarchyType' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.FetchEntityCollectionInternal' Step into: Stepping over non-user code 'SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateSelectDQ' Method Enter: CreatePagingSelectDQ Method Enter: CreateSelectDQ Method Enter: CreateSelectDQ Generated Sql query: Query: SELECT [AxxessRad].[dbo].[Title].[Description], [AxxessRad].[dbo].[Title].[isActive] AS [IsActive], [AxxessRad].[dbo].[Title].[LastModified], [AxxessRad].[dbo].[Title].[LastModifiedUserId], [AxxessRad].[dbo].[Title].[Metric], [AxxessRad].[dbo].[Title].[Name], [AxxessRad].[dbo].[Title].[TitleId] FROM [AxxessRad].[dbo].[Title] WHERE ( ( ( [AxxessRad].[dbo].[Title].[isActive] = @p1))) Parameter: @p1 : Boolean. Length: 0. Precision: 0. Scale: 0. Direction: Input. Value: True. Method Exit: CreateSelectDQ Method Exit: CreatePagingSelectDQ: no paging.

etc

Not sure if this is an LLBLGen or ASP issue?

Thanks

Walaa avatar
Walaa
Support Team
Posts: 14995
Joined: 21-Aug-2005
# Posted on: 22-Oct-2010 10:42:10   

What are you doing inside OnDataBinding_ddlTitle()? (code please).

OiNk!
User
Posts: 12
Joined: 13-Mar-2008
# Posted on: 22-Oct-2010 11:23:18   

No code in OnDataBinding_ddlTitle(), simply a breakpoint to see what is going on.

OnDataBinding_ddlTitle() is called repeatedly.

Walaa avatar
Walaa
Support Team
Posts: 14995
Joined: 21-Aug-2005
# Posted on: 22-Oct-2010 11:42:26   

In that case we have no option but to ask for a repro case, as simple as possible, preferably on northwind/adventure works, with page + code behind.