2009-07-15 36 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 – 2009-07-16 10:08:02

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) 
} 
相關問題