2010-07-03 9 views
2

Dans quelle situation une erreur de suivi s'est-elle produite?Impossible de convertir un objet de type 'MyType' en type 'Castle.Proxies.MyType'

Impossible de convertir un objet de type 'MyType' en type 'Castle.Proxies.MyType'.

MISE À JOUR:

J'ai reçu ce message d'erreur lors de la liaison MyType.FindAllByProperty("col1", "foo"); à un GridView (exactement un son Telerik: RadGrid). Cette erreur ne se produit pas à chaque fois, juste parfois. Voici le balisage de ma grille:

<telerik:RadGrid ID="grdList" runat="server" AutoGenerateColumns="false" OnNeedDataSource="grdList_NeedDataSource" 
    OnUpdateCommand="grdList_UpdateCommand" AllowAutomaticUpdates="True" OnItemUpdated="grdList_ItemUpdated" 
    AllowMultiRowEdit="true"> 
    <MasterTableView EditMode="InPlace" DataKeyNames="PageInRole_id" AllowAutomaticUpdates="true"> 
     <Columns> 
      <telerik:GridBoundColumn DataField="ContainerPage.PageTitle" HeaderText="Title" UniqueName="ContainerPage.PageTitle" 
       ReadOnly="true" /> 
     </Columns> 
    </MasterTableView> 
</telerik:RadGrid> 

MAJ2

est ici tout message d'exception et trace pile:

Unable to cast object of type 'PineCMS.Core.PageInRole' to type 'Castle.Proxies.PageInRoleProxy'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidCastException: Unable to cast object of type 'PineCMS.Core.PageInRole' to type 'Castle.Proxies.PageInRoleProxy'. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[InvalidCastException: Unable to cast object of type 'PineCMS.Core.PageInRole' to type 'Castle.Proxies.PageInRoleProxy'.] 
    Telerik.Web.UI.GetEnumerator>d__0.MoveNext() +175 
    Telerik.Web.UI.GridDataTableFromEnumerable.FillDataTableFromEnumerable(IQueryable enumerable) +1285 
    Telerik.Web.UI.GridDataTableFromEnumerable.FillData35() +3390 
    Telerik.Web.UI.GridDataTableFromEnumerable.FillData() +824 
    Telerik.Web.UI.GridResolveEnumerable.EnsureInitialized() +28 
    Telerik.Web.UI.GridEnumerableFromDataView..ctor(GridTableView owner, IEnumerable enumerable, Boolean CaseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +242 
    Telerik.Web.UI.GridDataSourceHelper.CreateGridEnumerable(GridTableView owner, IEnumerable enumerable, Boolean caseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +223 
    Telerik.Web.UI.GridDataSourceHelper.GetResolvedDataSource(GridTableView owner, Object dataSource, String dataMember, Boolean caseSensitive, Boolean autoGenerateColumns, GridColumnCollection presentColumns, String[] additionalField, Boolean retrieveAllFields) +595 
    Telerik.Web.UI.GridTableView.get_ResolvedDataSource() +243 
    Telerik.Web.UI.GridTableView.CreateChildControls(IEnumerable dataSource, Boolean useDataSource) +42 
    System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +72 
    System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +147 
    System.Web.UI.WebControls.DataBoundControl.PerformSelect() +261 
    Telerik.Web.UI.GridTableView.PerformSelect() +23 
    Telerik.Web.UI.GridTableView.DataBind() +363 
    Telerik.Web.UI.GridTableView.Rebind() +101 
    Telerik.Web.UI.GridCommandEventArgs.ExecuteCommand(Object source) +1174 
    Telerik.Web.UI.RadGrid.OnBubbleEvent(Object source, EventArgs e) +185 
    System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +70 
    Telerik.Web.UI.GridItem.OnBubbleEvent(Object source, EventArgs e) +142 
    System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +70 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981 




-------------------------------------------------------------------------------- 
Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927 
+0

Permettez-moi de trouver mes cartes de tarot et boule de cristal ... Sérieusement, attendez-vous que quelqu'un puisse vous aider sans donner aucune forme de contexte et d'explication de ce que vous essayez de faire? –

+0

@Krzysztof, voir ma mise à jour –

+1

Pouvez-vous fournir une trace de pile? –

Répondre

2

Cette exception est probablement le code en essayant de rattacher une entité mandatée/paresseuse pour charger une session. L'appel d'API le plus probable pour lancer cette exception avec un nouveau NHibernate (je n'ai pas de problème avec 2.1 mais j'ai des problèmes avec le dernier) est Session.Lock(obj, LockMode.None). Si le programmeur de ce composant expulse d'abord l'entité de l'ISession et le recharge ensuite (peut-être en cache?) Dans un autre par ID, ou exécute ISession.Update ce problème devrait disparaître jusqu'à ce que l'équipe NHibernate ait compris problème sous-jacent.

+0

Ce commentaire m'a vraiment aidé Je travaillais avec TestStack.White et quand j'ai commencé ma session je l'ai commencé avec la mise en cache et j'ai complètement oublié que j'avais fait ce changement. Après le passage à aucune mise en cache 'app.GetWindow (SearchCriteria.ByAutomationId (" 34R "), InitializeOption.NoCache);' il a commencé à être en mesure de faire la distribution. Je vous remercie. –

0

J'ai eu un problème similaire avec EntityFramework 6.0. J'avais migré à partir d'une ancienne version d'EntityFramework qui n'utilisait pas les proxies et qui avait du code qui créait et attachait de nouvelles instances de l'entité via new MyEntity();.

Ma solution était d'utiliser dbContext.MyEntity.Create(); à la place, donc je ne travaille qu'avec des proxies. Quelque chose de similaire devrait être disponible pour NHibernate si je me souviens bien.

Mon erreur était:

Impossible de jeter l'objet de type 'MyProject.MyEntity' taper 'System.Data.Entity.DynamicProxies.MyEntity_849E94C98E5E543D6DF5245252144E3EAC00131F811886276B6ABD991719D232'