我正在开发一个 ASP.NET C# 应用程序,并且希望提高操作的性能。
我有一个按钮,当用户单击它时,我发送一个 Ajax 调用以从数据库中获取数据并显示数据。
数据库的架构是这样的:
我有一个国家列表,每个国家都有多个系列(人口、石油、水......),每个系列都有多年(每年都有一个值)。所以基本上它是每个国家多年来一系列的演变。
为了获取数据,我使用 AJAX 调用 Web 服务。该网络服务将一个系列名称作为输入,我需要输出该系列多年来每个国家/地区的数据。输出数据应该是一个 Javascript 对象,如下所示:
水= {“1990”:{“美国”:0.1,“加拿大”:0.3,“澳大利亚”:0.4},“1991”:{“美国”:0.1,“加拿大”:0.5}}
ajax 调用:
$.ajax({
type: "POST",
url: "Service/WebService.asmx/GetData",
dataType: "json",
async: false,
data: "{'Series':'" + Series+ "'}",
contentType: "application/json; charset=utf-8",
success: function (data) {
mapValues = JSON.parse(data.d);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
该服务使用实体框架从数据库中读取。
var Context = new DataModel.DBEntities();
IEnumerable<YearClass> r = (from y in Context.Years
where y.Series.Name == Variable
select new YearClass
{
year = y.Name,
value = y.Value,
CountryCode = y.Series.Country.Code
});
yearClass 是一个强类型类型,只是为了在这里使用它。
然后我遍历所有年份并通过连接字符串以匹配所需格式来构建 JSON。
然而这个过程需要很多时间,我需要找到一种方法来提高它的性能。
哪些部分可以改进?非常感谢任何提示。