2011-01-26 3 views
0

다음 시나리오가 있습니다. SL 응용 프로그램에서 RIA를 사용하여 일부 데이터를 얻고 있습니다. 응용 프로그램의 첫 번째로드에서 데이터가 올바르게 꺼내지고 데이터가 프런트 엔드에 바인딩됩니다.Silverlight 4 값이 설정되었지만 "잘못된"값이 검색되고 있습니다.

그런 다음 필터 매개 변수를 변경하고 반환 된 데이터의 한 필드 만 변경됩니다. 나는 그것을 추적했고, 실제로 정확한 데이터를 반환하는 쿼리에 대해서는 문제가되지 않습니다. 그래서 생성 된 DomainService 클래스에 몇 가지 중단 점을 두었습니다. 그것을 다시 밖으로 데이터를 가져 오는 경우

Set value of 285.8333

그러나

는, 그것은 첫 페이지로드에서 데이터를 당기고 다음과 같이 : 다음과 같이 데이터가 올바르게 설정되어

Get value of 215.83333

내가 잘못하고있는 것에 대해 조언 해 줄 사람이 있습니까?

+0

나머지 코드에 대한 아이디어가 없으면 어떤 일이 벌어지고 있는지 정확히 알기가 어렵습니다. 예를 들어 잘못된 기록을보고있을 가능성이 있습니까? 또는 변경 사항을 취소하는 이벤트를 처리하고 있습니까? 어떤 필터 매개 변수를 변경하는지 표시 할 수 있습니까? –

+0

안녕하세요, Dave, 예, 그렇습니다. 일종의 힘든 일임에 동의합니다. 가능한 한 자세히 설명해 드리겠습니다. 나는 틀린 레코드를 보지 않고 값 세트와 반환 된 값이 같지 않기 때문에 그 레코드가 될 수 없다. 나는 어떤 사건도 전혀 다루지 않을 것이다. 꽤 바닐라 조작입니다. 즉, 데이터를 호출하고 컨트롤에 바인딩합니다. 변경중인 필터 매개 변수는 날짜, 즉 작업의 시작일과 종료일입니다. db에서 사용 가능한 작업 시간은 해당 날짜를 기준으로 계산되며 변경되는 유일한 값입니다. – DavidS

답변

0

나는 그것이 실제로 어떻게 행동 하는지를 실제로 모르지만 나는 그것을 고치는 법을 배웠다.

내가 수행하고있는 작업에 대한 더 많은 배경이 있습니다. 내가 선택한 데이터와 필터를 사용하여 일관되게 세 행의 데이터를 가져 오는 것으로 가정합니다. 필터 매개 변수 즉 시작 날짜 또는 종료 날짜를 변경하는 경우 유일한 차이점은 workHoursAvailable 값이 변경되지만 웹 서비스 메서드를 호출 할 때 이러한 변경 사항이 반영되지 않는다는 것입니다.

내가 한 일을 "해결"하려면. 각 ID를 식별하는 고유 ID를 해킹하고 동일한 행의 데이터에 대해 필터를 변경 한 후에 고유 ID가 변경되도록했습니다. 그런 일이 발생하면 올바른 workHoursAvailable이 웹 서비스 메서드에서 호출됩니다.

배경에서 무슨 일이 벌어지고 있는지 추측하고 싶지는 않지만이 사실을 알고있는 사람이라면 설명을 남겨주세요.


추가 조사 후 나는이

http://forums.silverlight.net/forums/p/120834/462505.aspx

을 발견하고 효과적으로 나는 예를 들어, 내 도메인 컨텍스트를 취소했다 DomainContext.EntityContainer.Clear();