2009-07-15 1 views
0

私はアプリケーションにいくつかのデータを貼り付けようとしていますので、公式の文字列get + linqを構築して、私は彼らが必要なときに欲しい。List〜Arrayをアプリケーションステートに保存するにはどうすればいいですか(C#ASP.net MVC)

私はちょうどので、私はそれに対して照会することができ、私は戻ってそれを引っ張って行くと思いますどのようにそれを保存するために苦労しています...

public void CommonDatatoApp() 
{ 
    CDataResponse cCommonData = this.GatewayReference.GetCommonData(); 
    var dCountries = cCommonData.PropertyCountries; //KeyValue 
    var dRegions = cCommonData.Regions; //Array 
    var dAreas = cCommonData.Areas; //Array 
    var dResorts = cCommonData.Resorts; //Array 

    var commonRAR = (from c in dCountries 
        join r in dRegions on c.Key equals r.CountryCd 
        join a in dAreas on r.Id equals a.RegionId 
        select new { c.Key, c.Value, r.Id, r.Name, dAreasID = a.Id, dAreasIDName = a.Name} 
       ); 


    HttpContext.Current.Application["commonData"] = commonRAR; 


} 

答えて

1

あなたがデータと一致するクラスを作成し、そのクラスのIQueryable<T>を返すことができます:私が持っているもの、今それを行うにはかなり確実ではない

public class SaveMe { 
    public string Key {get;set} 
    public string Value {get;set;} 
    public int Id {get;set;} 
    public string Name {get;set;} 
    public int dAreasID {get;set;} 
    public string dAreasIDName {get;set;} 
} 

    var commonRAR = (from c in dCountries 
        join r in dRegions on c.Key equals r.CountryCd 
        join a in dAreas on r.Id equals a.RegionId 
        select new SaveMe { 
         Key= c.Key, 
         Value = c.Value, 
         Id = r.Id, 
         Name = r.Name, 
         dAreasID = a.Id, 
         dAreasIDName = a.Name 
        } 
       ); 


    HttpContext.Current.Application["commonData"] = commonRAR; 
+0

乾杯少なくともそれはロードされます:l –

+0

あなたはそれをどうしたかったのですか? –

+0

私はそれを引き抜こうとしているので、私は(あなたの例のように)再クエリーして、値を取り出すか、すべての値を出力することができます。私はデータを得ることができません。 私はそれにアクセスしようとしましたIQueryable appCommonRar =(IQueryable)HttpContext.Current.Application ["commonRAR"]; あなたはおそらく私がこのLINQ/.net3.5/MVCのすべてのものにかなり新しいと思っていて、暗闇の中で乱暴に刺すようです。 –

1

あなたが保存しているコレクションはの列挙です匿名の種類。アイテムをアプリケーション[]ストアから取得するときは、それをIEnumerable<TYPE>にキャストしなければなりませんが、匿名であるため、これを行うことはできません。

あなたができることは、IEnumerableにキャストすることですが、それはタイプのない列挙可能なインターフェイスです。例えば

IEnumerable myList = (IEnumerable) HttpContext.Current.Application["commonData"]; 

foreach (object obj in myList) 
{ 
    // do something with obj (but that will be hard, because it is of 
    // an anonymous type) 
} 
関連する問題