Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 4 如何降低实体框架代码的处理速度?_Entity Framework 4_Webforms - Fatal编程技术网

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%的过程。