2009-12-11 5 views
3

을 내 응용 프로그램에서 나는이 예외가 debuging 때 (Linq에 : { "작업 런타임을 불안정하게 할 수있다."}

foreach 문 : { "작업 런타임을 불안정하게 할 수있다."} foreach는 루프를 내가 debugmode에서 모델을 처음 가져 가면 모델에서 VAR 항목)

나는 말한다 :

ResultView =>는 enumarab을 enumarate 것입니다 결과보기를 늘리지 몇 가지 더 많은 시간을 유혹 한 후 르

 base=>Operation Could not destabilize the runtime. 

는, 상기 ResultView 내 데이터를 보여줍니다 얻는다. 그게 내가, debugmode에 ...

내가 그것이 무엇을이이 예외

에게 던지는 모드를 통해 overing을 의미 하는가 debugin없이 내 응용 프로그램을 실행 ??

UPDATE 모델은 내가있을 때 여전히 나던 일 만 내가 ........ 모드를

답변

7

은 코드 생성기를 전자식으로 구현할 때 실수를했음을 의미합니다. xpression trees. 표현식 트리 람다가 델리게이트로 바뀌면 우리는 IL을 델리게이트 본문에 동적으로 침투합니다. IL 코드가 잘 형성되지 않고 확인할 수없는 경우,이를 실행하면 지터가 나쁜 코드를 생성 할 수 있으며, 이는 이론적으로 런타임을 불안정하게 만들 수 있습니다. 나는 우리가 확인할 수없는 코드 결함을 모두 잡았다 고 생각했지만 몇 개가 빠져 들었을 가능성이있다.

작고 단순한 자체 검사 결과가 위의 진단과 일치하는 것으로 보이는 경우 내 블로그의 연락처 링크를 통해 이메일을 보내면 입력 한 버그가 표시됩니다. 현재 IL 생성 코드를 소유하고있는 팀. 이상적인 repro는 문제가되는 식 람다 (lambda)를 생성하고 컴파일하고 예외를 얻는 코드 일뿐입니다.

감사합니다.

+1

다음과 같이이 오류를 재현 할 수 있습니다. (1) 부모 클래스에서 하위 클래스로 상속되는 dbml 데이터 모델을 만듭니다. (2) 자녀와 관계가있는 세 번째 반을 만든다. (3) LoadWith (t => t.ChildClasses)을 수행하는 세 번째 클래스에 대한 쿼리를 수행합니다. 쿼리가 실행되면이 오류가 발생합니다. –