2009-07-15 10 views
0

Ich versuche, einige Daten in die App zu kleben, so dass ich dann eine öffentliche Zeichenfolge erstellen kann + linq Abfrage nur die Bits herausziehen Ich will, wenn ich sie brauche.Wie lese ich List ~ Array im Anwendungsstatus (C# ASP.net MVC)

ich nur kämpfen bin, es zu speichern und dann, wie ich es wieder raus gehen würde über ziehen, so kann ich dagegen abfragen ...

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; 


} 

Antwort

1

Sie können eine Klasse erstellen, die die Daten übereinstimmt, und geben eine IQueryable<T> dieser Klasse:

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

Beifall nicht ganz sicher, was damit zu tun, jetzt habe ich es aber zumindest lädt es: l –

+0

Was wolltest du damit machen? –

+0

Ich versuche, es herauszuziehen, also kann ich es (viel wie Ihr Beispiel) es requery und ziehen Sie einen Wert oder geben Sie einfach alle Werte aus. Ich kann nicht zu den Daten kommen. Ich versuchte, darauf zuzugreifen. IQueryable appCommonRar = (IQueryable) HttpContext.Current.Application ["commonRAR"]; Aber wie Sie wahrscheinlich erraten werden, bin ich ziemlich neu zu allen diesen LINQ/.net3.5/MVC-Sachen und stach wild in der Dunkelheit. –

1

Die Sammlung Sie Speicherung ist eine Aufzählung von anonyme Typen. Wenn Sie das Element aus dem Application [] - Speicher abrufen, müssen Sie es in IEnumerable<TYPE> umwandeln, aber da es anonym ist, können Sie das nicht tun.

Das Beste, was Sie tun können, ist die Umwandlung in IEnumerable, aber das ist die untypisierte aufzählbare Schnittstelle.

Zum Beispiel:

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) 
}