2011-10-20 3 views
0

vs2010으로 개발 된 dll을 사용하는 사이트가 있습니다.캐시가 있습니까?

dll에서 내 개체의 IEnumerable 컬렉션을 반환하는 C.GetData(int id) 메서드가 있습니다. 리피터를 사용하여 데이터를 표시 할 때 "이전"데이터가 표시됩니다. 예를 들어 데이터베이스에 name=Maurox이 있지만 .aspx 페이지에서 업데이트하기 전에 필드의 이전 값인 name=Pippo이 표시됩니다.

동일한 쿼리 (방법 C.GetDate에서 복사/붙여 넣기)를 사용하면 데이터가 정상입니다. name = Maurox on may 페이지가 표시됩니다. "인라인"LINQ (코드 복사/붙여 넣기 LINQ 쿼리와 로마 피렌체 00100

통해 C.GetData() 나는이 행 (잘못)가 51

: 여기

은 예입니다 뒤) 내가 가지고 : 51
비아 로마 피렌체 00101

쿼리는 간단하다 :

from c in db.ContattiRecapiti 
join cc in db.Contatti on c.idcontatto equals cc.IDContatto 
join aa in db.aspnet_Membership on cc.aspnet_UserId equals aa.UserId 
where cc.aspnet_UserId == UserId && cc.Attivo == 1 && aa.IsApproved == true && c.attivo == 1 
select c 

어떻게 해결할 수 있습니까? 캐시가 있습니까 ??

감사합니다.

답변

1

LINQ to SQL 또는 Entity Framework를 사용하는 경우 내부 개체 캐시가 있습니다.이 개체는 작업 단위 패턴의 구현으로 데이터/개체 컨텍스트는 고용합니다. 당신이 할 수있는 일은 Refresh() 메서드를 호출하여 데이터를 새로 고침하는지 확인하는 것입니다 ...

또한 데이터/개체 컨텍스트를 어떻게 저장합니까? 전역 적으로 저장합니까, 아니면 각 LINQ 쿼리에 저장합니까?

+0

좋아,이게 내 문제를 해결하는 것 같습니다. 반환하기 전에'db.Refresh (System.Data.Objects.RefreshMode.StoreWins, C);'를 삽입했습니다. 각 linq 쿼리에 대해 저장합니다. – maurox

0

제대로 기능을 호출 하시겠습니까? 함수를 호출하여 ispostback 함수 또는 다른 함수 내에서 사용할 수 있는지 확인하십시오. 나는 dll 내에 별도의 캐시가 있다고 생각하지 않는다. 브라우저 캐시가 지워지지 않을 수 있습니다. 또한 페이지를 새로 고친 후 데이터를 확인하십시오 (Ctrl + F5)

+0

아니요 브라우저 캐시가 아니며 페이지에 다시 게시가 없습니다 ... – maurox

관련 문제