Je dispose de la fonction + code suivante pour analyser et interroger une requête de service web, puis en théorie stocker les résultats dans l'application (car il suffit de la rafraîchir une fois par jour, ce qui est heureusement l'application se rafraîchit).Traitement de LINQ/HttpContext.Application & WebServices
//tocommondata is a reference to the common stuff in the webservice
var dCountries = toCommonData.PropertyCountries; //KeyValuePair
var dRegions = toCommonData.Regions;//Array
var dAreas = toCommonData.Areas;//Array
var commonDAT = (from c in dCountries
join r in dRegions on c.Key equals r.CountryCode
join a in dAreas on r.Id equals a.RegionId
join p in dResorts on a.Id equals p.AreaId
select new CommonSave
{
Key = c.Key,
Value = c.Value,
Id = r.Id,
Name = r.Name,
dAreasID = a.Id,
dAreasName = a.Name,
}
).ToList().AsQueryable();
HttpContext.Current.Application["commonDAT"] = commonDAT;
Ce bit fonctionne très bien
foreach (var item in commonDAT)
{
Response.Write(item.value);
}
** Idéalement, je veux puis tirez sur la appmemory pour que je puisse alors accéder aux données, ce qui est là où je l'ai essayé divers (probablement stupide) des méthodes pour utiliser l'information. Tout le tirant me cause des problèmes: o (**
//This Seems to kinda work for at least grabbing it (I'm probably doing this REALLY wrong).
IQueryable appCommonRar = (IQueryable)HttpContext.Current.Application["commonDAT"];
Réponse Marqué comme (enlever le .AsQueryable()) Exemple rapide
Juste pour en faire une réponse verbeuse, un moyen rapide de re-interroger et afficher un resultset ...
List<CommonSave> appcommon = (List<CommonSave>)HttpContext.Current.Application["commonDAT"];
Response.Write(appcommon.Count()); // Number of responses
var texst = (from xs in appcommon
where xs.Key == "GBR"
select xs.dAreasName
);
foreach (var item in texst)
{
Response.Write("<br><b>"+item.ToString()+"<b><br>");
}
Espérons que quelqu'un l'utilisera.
Liste appcommon = (Liste ) HttpContext.Current.Application ["commonRAR"]; - Est-ce que de ne pas rendre - Impossible de jeter l'objet de type 'System.Linq.EnumerableQuery'1 [WebServiceTEST.CommonSave]' taper 'System.Collections.Generic.List'1 [WebServiceTEST.CommonSave]' . - –
Single Dimentional je reçois (comme http://stackoverflow.com/questions/73542/ilistt-to-iqueryablet) son travail avec la classe pour accéder à la liste une fois que c'est dans l'appmem que je ne reçois pas ... –
J'ai dit laisser comme une liste. Vous avez (linq) .ToList(). ToQuery(). Il suffit de le laisser comme (linq) .ToList(). –