我的同事昨天发布了这个问题:即使对于微小的DbContext,7秒的EF启动时间.
在获取代码并将其移至单独的解决方案以尽可能地隔离它之后,我发现包含项目的平台目标对EF启动过程的运行时有深远的影响.
当针对x64时,我看到测试需要大约7秒来启动第一个DbContext并且<1秒来启动第二个DbContext(与我的同事的调查结果一致,也是针对x64).但是,当我将平台目标切换到x86时,第一个DbContext旋转时间减少了大约4秒,减少到3.34633秒,而第二个DbContext花费了与x64情况相同的时间.
鉴于此,当针对64位系统和32位系统时,实体框架似乎正在经历一个完全不同的初始化过程.有没有人能够深入了解引擎盖下的内容来解释这个问题?
我试图从数据库中复制字节流,对其进行编码,最后将其显示在网页上.但是,我注意到以不同方式编码内容的不同行为(注意:我使用的是"西欧"编码,它具有拉丁字符集且不支持中文字符):
var encoding = Encoding.GetEncoding(1252 /*Western European*/);
using (var fileStream = new StreamReader(new MemoryStream(content), encoding))
{
var str = fileStream.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
比.
var encoding = Encoding.GetEncoding(1252 /*Western European*/);
var str = new string(encoding.GetChars(content));
Run Code Online (Sandbox Code Playgroud)
如果内容包含中文字符,则第一个代码块将产生一个类似"D $教学而设计的"的字符串,这是不正确的,因为编码不应该支持这些字符,而第二个块将产生"D $æ• ™å||€Œè®¾è®¡ç"""这是正确的,因为这些都是西欧字符集.
这种行为差异的解释是什么?
在我管理的系统中,有几个SQL Server代理作业基于dbo.sysschedules中定义的计划运行.
我想在我的应用程序上创建一个日历视图,该日历视图将在每个作业被安排在给定时间跨度内运行时显示.例如,如果我将计划设置为在该月的第一个和第四个星期一上午8:00运行,那么给定当月的时间跨度(2013年4月),我希望得到日期"4/1"/2013 8:00 AM,4/22/2013 8:00 AM"回来.
有没有人遇到过实现这个的方法?我知道我可以阅读时间表定义并以务实的方式解决这个问题,但我很好奇是否有人在我自己进入杂草之前已经提出了解决方案.
谢谢!