2011-10-19 2 views
0

작성중인 WCF RIA 응용 프로그램의 일부로 정적 인 지원 데이터를 로컬로 캐시하고 싶습니다 (물 시스템, 국가, 지역 목록, 그 종류의 thing). 목록을 (LocalStateContainer.cs)에 캐시하기위한 간단한 정적 클래스를 만들었습니다.RIA 응용 프로그램에서 데이터베이스의 정적 데이터로드

예 :

public static class LocalStateContainer 
{ 
    private static IEnumerable _waterSystems; 

    public static IEnumerable WaterSystems 
    { 
     get 
     { 
      if (_waterSystems== null) 
      { 
       DomainDataSource ds = new DomainDataSource(); 
       Web.SuperDomainContext d = new Web.SuperDomainContext(); 
       ds.DomainContext = d; 
       ds.QueryName = "GetWaterSystems"; 
       ds.Load(); 

       _waterSystems = ds.Data; 
      } 
      return _waterSystems; 
     } 
    } 
} 

가이 방법으로 DomainDataSource를 사용하는 신중한인가? 난 그냥 쉽게 갈 수 없습니다 :

더 넓게
public static class LocalStateContainer 
{ 
    private static IEnumerable _waterSystems; 

    public static IEnumerable WaterSystems 
    { 
     get 
     { 
      if (_waterSystems== null) 
      { 
       Web.SuperDomainContext d = new Web.SuperDomainContext(); 
       _waterSystems = from w in d.WaterSystems select w; 
      } 
      return _waterSystems; 
     } 
    } 
} 

, 때 직접 DomainContext 접근에 비해 데이터를 검색하기 위해 DomainDataSource를 사용하는 스마트입니까? DomainDataSource를 2-way 링크로 연결하는 것이 최선의 방법이라고 상상해보십시오. 그러나 DomainContext에서 정적 데이터를 직접 꺼내는 것은 해롭거나 어리석은 일입니까?

모든 의견을 환영합니다. 나는 Silverlight에 대해 아직 아주 익숙하다. 이것이 미키 마우스 물건이라면 사과한다.

감사합니다.

답변

0

난 그냥 당신이 ping 할 수 App.cs의 정적 myDomainContext이 여기에 DomainDataSource 신경 쓰지 것 :

LoadOperation<my_entity> loadComplete = App.myDAL.Load(App.myDAL.Getmy_entityQuery()); 

와 다음이 가져 오는 끝나면 알고 걱정하는 경우 :

loadComplete.Completed + = 새 EventHandler (loadChain_Completed);

void loadChain_Completed(object sender, EventArgs e) 
{ 
    //Stuff to do when data has been fetched, for example 
    return App.myDAL.my_entitys.ToList(); 
} 
관련 문제