2011-10-19 13 views
0

私が作成しているWCF RIAアプリケーションの一部として、静的なサポートデータをローカルにキャッシュしたいと思います(水システム、国、地域、その種類のリスト私はリストを(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ウェイでリンクする方法があると思いますが、静的なデータを直接DomainContextから抜き取るのは害ですか愚かでしょうか?

すべての洞察が認められます。これがミッキーマウスのものなら、私はまだSilverlightにはとても新しいので謝っています。

ありがとうございます!

答えて

0

私はちょうどあなたがpingを実行できるApp.csの静的myDomainContext持って、ここでDomainDataSourceを気にしないでしょう。

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

とを、あなたはそれがフェッチ行うの際に知って心配している場合:

loadComplete.Completed + =新しいイベントハンドラ(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(); 
} 
関連する問題