无论是否调用它们,也会填充关系项

时间:2015-06-08 15:54:55

标签: c# entity-framework

我有以下内容:

class Test
{
    public virtual IList<TestLike> TestLikes { get; set; }
}

我有一个看起来像这样的存储库方法:

IEnumerable<Test> GetTests()
{
    return this.context.Tests;
}

当我在控制器中调用它时:

List<Test> tests = this.testRepository.GetTests().ToList();

然后在调试器中查看它,它还填充了附加到它的所有TestLikes ...我没有枚举调试器列出它们,它们就在那里

在我真正需要它之前,我该如何延迟这种情况?

1 个答案:

答案 0 :(得分:2)

  

然后在调试器中查看它,它还填充了所有的   TestLikes也附在它上面......我没有必要   枚举调试器列出它们,它们就在那里。

看起来lazy loading已启用。导航到调试器本身内的属性会触发SQL请求。如果不查看调试器中的导航属性,则不会执行SQL请求。