关于Linq to sql 中 EntityRef<T>.Entity 多次使用耗时问题
查看了下源码,发现EntityRef<T>.Entity 只有第一次Get才会进行数据库查询,照这个道理应该第二次之后读的速度比第一次快把,但似结果缺很奇怪,我试了取四次,每次都比前面取的慢,望指教哈。。代码如下:class Program
{
static void Main(string[] args)
{
DbContext.Context.Log = Console.Out;
var source = DbContext.Context.AdminsMenus.Where(o=>o.MenuID=="11").ToList();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
foreach(var value in source)
{
Console.WriteLine(string.Format("AdminName:{0} ", value.Admin.AdminName));
}
stopwatch.Stop();
Console.WriteLine(string.Format("第一次取耗时{0}",stopwatch.Elapsed.ToString()));
stopwatch.Start();
foreach (var value in source)
{
Console.WriteLine(string.Format("AdminName:{0} ", value.Admin.AdminName));
}
stopwatch.Stop();
Console.WriteLine(string.Format("第二次耗时{0}", stopwatch.Elapsed.ToString()));
stopwatch.Start();
foreach (var value in source)
{
Console.WriteLine(string.Format("AdminName:{0} ", value.Admin.AdminName));
}
stopwatch.Stop();
Console.WriteLine(string.Format("第三次耗时{0}", stopwatch.Elapsed.ToString()));
stopwatch.Start();
foreach (var value in source)
{
Console.WriteLine(string.Format("AdminName:{0} ", value.Admin.AdminName));
}
stopwatch.Stop();
Console.WriteLine(string.Format("第四次耗时{0}", stopwatch.Elapsed.ToString()));
Console.ReadLine();
}
}
结果如下:
补充:.NET技术 , C#