0

次の関数 + コードを使用して Web サービス リクエストを解析およびクエリし、理論的には結果をアプリケーションに保存します (1 日に 1 回だけ更新する必要があるため、幸運にもアプリケーションが更新されるときです)。

//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;

このビットは正常に動作します

foreach (var item in commonDAT)
{
  Response.Write(item.value);

}

**理想的には、それを appmemory から引き出して、データにアクセスできるようにしたいと考えています。データは、情報を使用するためにさまざまな (おそらくばかげた) メソッドを試した場所です。引き抜くだけで問題が発生します: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"];


マーク付きで回答 (.AsQueryable() を削除) クイック例

これを冗長な回答にするために、結果セットを再クエリして表示する簡単な方法...

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

うまくいけば、誰かに使用されます。

4

1 に答える 1

2

複数回クエリを実行する場合は、リストのままにしておかないのはなぜですか? タイプは になりますList<CommonSave>

于 2009-07-16T10:44:23.030 に答える