2010-07-03 7 views
2

다음과 같은 오류가 발생합니까?'MyType'유형의 객체를 'Castle.Proxies.MyType'유형으로 변환 할 수 없습니다.

'MyType'유형의 객체를 'Castle.Proxies.MyType'유형으로 변환 할 수 없습니다.

UPDATE하십시오 GridViewMyType.FindAllByProperty("col1", "foo"); 결합하면서

나는이 오류 메시지를 받았습니다 (정확히 Telerik의 하나 RadGrid). 이 오류는 항상 때로는 발생하지 않습니다.

<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> 

UPDATE2 여기

모든 예외 메시지 및 스택 추적한다 : 여기 내 그리드의 마크 업이다

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

이 내 타로 카드를 찾아 보자 입력 할 유형 'MyProject.MyEntity'의 개체를 캐스팅 할 수 없습니다 그리고 수정 구슬 ... 진지하게, 당신은 어떤 형태의 문맥이나 설명을하지 않고 당신을 도울 수 있기를 기대하고 있습니까? –

+0

@Krzysztof, 내 업데이트 –

+1

스택 추적을 제공 할 수 있습니까? –

답변

2

이 예외는, 아마에 노력 코드에서 오는을 다시 연결 세션에 프락시/지연로드 엔티티. 이 NHibernate를 가진 예외를 던질 가능성이 가장 높은 API 호출 (2.1에 문제가 없지만 최신 문제가 있음)은 Session.Lock(obj, LockMode.None)입니다.

이 구성 요소의 프로그래머가 먼저 Idession을 사용하여 엔티티에서 엔티티를 제거한 다음 (아마도 캐싱?) 다른 ID로 다시로드하거나 ISession.Update을 수행하면 NHibernate 팀에서 해당 엔티티를 알아낼 때까지이 문제를 해결해야합니다. 근본적인 문제.

+0

이 주석은 TestStack.White와 함께 작업하고 있었고 세션을 시작할 때 캐싱으로 시작하여 완전히 변경된 것을 잊어 버렸습니다. app.GetWindow (SearchCriteria.ByAutomationId ("34R"), InitializeOption.NoCache) 캐싱을하지 않으면 캐스팅을 할 수있게되었습니다. 고맙습니다. –

0

EntityFramework 6.0에서도 비슷한 문제가있었습니다. 프록시를 사용하지 않은 이전 버전의 EntityFramework에서 마이그레이션했으며, new MyEntity();을 통해 엔티티의 새 인스턴스를 만들고 연결 한 코드가있었습니다.

내 솔루션은 대신 dbContext.MyEntity.Create();을 사용하여 프록시에서만 작동합니다. 내가 똑같이 리콜하면 NHibernate와 비슷한 것이 가능할 것이다.

내 오류 :

'System.Data.Entity.DynamicProxies.MyEntity_849E94C98E5E543D6DF5245252144E3EAC00131F811886276B6ABD991719D232'

관련 문제