小编Ale*_*scu的帖子

实体框架+ LINQ +"包含"==超慢?

试图重构一些最近变得非常慢的代码,我遇到了一个代码块,执行时间超过5秒.

代码由2个语句组成:

IEnumerable<int> StudentIds = _entities.Filters
                    .Where(x => x.TeacherId == Profile.TeacherId.Value && x.StudentId != null)
                    .Select(x => x.StudentId)
                    .Distinct<int>();
Run Code Online (Sandbox Code Playgroud)

_entities.StudentClassrooms
                    .Include("ClassroomTerm.Classroom.School.District")
                    .Include("ClassroomTerm.Teacher.Profile")
                    .Include("Student")
                    .Where(x => StudentIds.Contains(x.StudentId)
                    && x.ClassroomTerm.IsActive
                    && x.ClassroomTerm.Classroom.IsActive
                    && x.ClassroomTerm.Classroom.School.IsActive
                    && x.ClassroomTerm.Classroom.School.District.IsActive).AsQueryable<StudentClassroom>();
Run Code Online (Sandbox Code Playgroud)

所以它有点乱,但首先我从一个表(过滤器)得到一个不同的Id列表,然后我使用它查询另一个表.

这些是相对较小的表,但它仍然是5秒以上的查询时间.

我把它放在LINQPad中,它表明它首先执行底部查询,然后运行1000个"不同"查询.

一时兴起,我通过在最后添加.ToArray()来更改"StudentIds"代码.这提高了速度1000x ...现在需要100ms才能完成相同的查询.

这是怎么回事?我究竟做错了什么?

c# linq entity-framework

16
推荐指数
1
解决办法
7319
查看次数

AS3中的TextFieldAutoSize和textWidth

我正在尝试在AS3中为文本字段绘制背景.

我有一个嵌入字体的TextField并使用autoSize = TextFieldAutoSize.LEFT.我将文本分配给TextField然后调用try使用TextField的textWidth绘制一个roundedRect.文本字段宽度始终小于实际文本宽度.

有没有其他方法来获得实际的文本宽度?我做了一些快速谷歌搜索,但我没有找到任何东西.

码:

var tfProgramName:TextField = TextUtil.createTextField(true,"Arial",20,true);
tfProgramName.width = 100;
tfProgramName.autoSize = TextFieldAutoSize.LEFT;
tfProgramName.x = 5;
tfProgramName.y = 5;
addChild(tfProgramName);

tfProgramName.text = _program.title;
background.graphics.clear();
background.graphics.beginFill(0xFF0000,0.75);
background.graphics.drawRoundRect(0,0,tfProgramName.textWidth+10,this.height+10,5,5);
background.graphics.endFill();
Run Code Online (Sandbox Code Playgroud)

在我的情况下textWidth类似于373,但它应该接近400.它肯定很接近,但它似乎没有考虑字体或字体大小.

flash actionscript-3

5
推荐指数
1
解决办法
1万
查看次数

什么是*nix上最快/最有效的查找/替换应用程序

我有一个250MB +的大型SQL转储,我需要用dev.mysite替换www.mysite.我已经尝试使用nano和vi进行查找/替换,但两者都窒息.纳米甚至无法打开它,而且vi现在已经在寻找/替换了一个小时.

有人知道*nix或Windows系统上的工具可以快速查找/替换大文件吗?

linux replace find

3
推荐指数
1
解决办法
1953
查看次数

标签 统计

actionscript-3 ×1

c# ×1

entity-framework ×1

find ×1

flash ×1

linq ×1

linux ×1

replace ×1