我在实体中有一个类结构,看起来像这样:
public class Parent
{
public int Id { get; set; }
public List<Child> Children { get; set; }
//Lots more fields....
}
public class Child
{
public int Id { get; set; }
public int ParentId { get; set; }
[ForeignKey("ParentId")]
public Parent Parent { get; set; }
//Lots more fields....
}
然后我使用以下代码在这些表上运行查询:
Context.Database.Log = s => Debug.Print(s);
var ALL = Stopwatch.StartNew();
var query = context.Parent.Include(x => x.Children).Where(x => //Whatever...).ToList()();
ALL.Stop();
Context.Database.Log = null;
查询调试的输出告诉我查询也不过773毫秒,例如不到一秒钟,但是计时器告诉我整个过程花了2秒钟。
鉴于此,我假设Entity将数据映射到对象所需的时间大约是一秒钟,有人可以确认这是否正确吗?
更重要的是-我的问题是,我有什么选择来减少这段时间?
请注意,此代码:
Context.Database.Log = s => Debug.Print(s);
将在Visual Studio中输出执行到命令窗口的实际SQL。
答案 0 :(得分:1)
鉴于此,我假设Entity将数据映射到对象所需的时间大约是一秒钟,有人可以确认这是否正确吗?
是的,尽管在Entity Framework上改进了映射的加载时间,但仍然需要时间。
根据@Mikael Eliasson的回答[1],
希望这会有所帮助