如何在应用程序状态(C#ASP.net MVC)下存储List~Array
我正在尝试将一些数据粘贴到应用程序中,这样我就可以构建一个公共字符串get+linq查询,以便在需要时提取出我想要的数据 我只是在努力储存它,然后我会如何把它拿出来,这样我就可以对它进行查询如何在应用程序状态(C#ASP.net MVC)下存储List~Array,c#,asp.net-mvc,.net-3.5,linq-to-objects,C#,Asp.net Mvc,.net 3.5,Linq To Objects,我正在尝试将一些数据粘贴到应用程序中,这样我就可以构建一个公共字符串get+linq查询,以便在需要时提取出我想要的数据 我只是在努力储存它,然后我会如何把它拿出来,这样我就可以对它进行查询 public void CommonDatatoApp() { CDataResponse cCommonData = this.GatewayReference.GetCommonData(); var dCountries = cCommonData.PropertyCountries; //
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;
}
您存储的集合是匿名类型的枚举。从应用程序[]存储区检索项目时,必须将其强制转换为
IEnumerable
,但由于它是匿名的,因此无法执行此操作
您最好将其强制转换为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)
}
您可以创建与数据匹配的类,并返回该类的
IQueryable
:
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;
Cheers不太确定该怎么处理现在我有了它,但至少它加载了:L你想用它做什么?我正在尝试拉出它,这样我就可以(非常像你的示例)重新查询它并拉出一个值或只是输出所有的值。我找不到数据。我尝试访问它IQueryable appCommonRar=(IQueryable)HttpContext.Current.Application[“commonRAR”];但正如你可能猜到的那样,我对LINQ/.net3.5/MVC这类东西还很陌生,而且我在黑暗中疯狂地刺伤