Entity framework 4 如何降低实体框架代码的处理速度?
Entity framework 4 如何降低实体框架代码的处理速度?,entity-framework-4,webforms,Entity Framework 4,Webforms,我使用这段代码是为了读取和更新数据库中的一个值,该值指示网站的页面浏览量 void Session_Start(object sender, EventArgs e) { intPageView++; Session.Add("Online", intPageView); DataLayer.MainFunction.UpdateOnlineUser(); } public static void UpdateOnlineUser() {
我使用这段代码是为了读取和更新数据库中的一个值,该值指示网站的页面浏览量
void Session_Start(object sender, EventArgs e)
{
intPageView++;
Session.Add("Online", intPageView);
DataLayer.MainFunction.UpdateOnlineUser();
}
public static void UpdateOnlineUser()
{
try
{
int intCount = 0;
TaffyPetEntities db = new TaffyPetEntities();
T_Setting t_s = db.T_Setting.SingleOrDefault(i => i.ID == 1);
intCount = Convert.ToInt32(t_s.Page_counter);
intCount++;
t_s = new T_Setting();
t_s = db.T_Setting.First(i => i.ID == 1);
t_s.Page_counter = intCount;
db.SaveChanges();
}
catch (Exception err)
{
DataLayer.Error.RegisterError("MainFunction.cs", err.Message);
}
}
在本地系统中,一切都很好,运行速度也很好,但当网站发布并上传到服务器上时,一切都发生了变化。问题是,起初我们没有任何数据输出,当你点击网站上的每个链接时,显示另一个页面的时间太长为了找出问题,我使用了VisualStudio的性能分析。在这个分析的结果页面上,我发现上述代码的这一部分使用了整个流程的70%:
T\u设置T\u s=db.T\u设置.SingleOrDefault(i=>i.ID==1)代码>
问题是:
1.在网站数据层(DAL)的实体框架中获取数据的语法正确吗?
2.我可以用其他方法更改此代码以降低处理速度吗?
谢谢。不确定这是否是问题所在,但是SingleOrDefault
将检查整个数据集,以确保只有一个元素符合条件,而FirstOrDefault
可能是第一个,因为它将返回第一个匹配项。非常感谢。在一些关于EF的文章中,我看到他们使用了SingleOrDefault
。但是我把它改为FirstOrDefault
,什么也没发生。这两种方法似乎是一样的,因为我再一次得到了69%的过程。