C# EntityFrameworkCore 2.1.0默认情况下加载所有相关数据,而不使用Include

C# EntityFrameworkCore 2.1.0默认情况下加载所有相关数据,而不使用Include,c#,asp.net,.net,entity-framework,entity-framework-core,C#,Asp.net,.net,Entity Framework,Entity Framework Core,EntityFrameworkCore有一个问题,默认情况下它会加载所有相关数据 没有必要在这个问题上发布代码,没有代码很容易解释 我有一个具有用户导航属性的Post类。问题是,每次我尝试加载Post时,用户都会随之加载,但我不希望这样。我没有使用延迟加载。我认为默认情况下,延迟加载不包括在EF核心中,您需要为它引用一个特殊的包,对吗?嗯,我没有 即使在最简单的查询(如以下查询)上也会发生这种情况: db.Posts.ToList(); 然后,当我尝试序列化这些帖子时,我遇到了引用循环处理问题

EntityFrameworkCore有一个问题,默认情况下它会加载所有相关数据

没有必要在这个问题上发布代码,没有代码很容易解释

我有一个具有用户导航属性的Post类。问题是,每次我尝试加载Post时,用户都会随之加载,但我不希望这样。我没有使用延迟加载。我认为默认情况下,延迟加载不包括在EF核心中,您需要为它引用一个特殊的包,对吗?嗯,我没有

即使在最简单的查询(如以下查询)上也会发生这种情况:

db.Posts.ToList();
然后,当我尝试序列化这些帖子时,我遇到了引用循环处理问题,因为用户在上面又有了帖子导航属性

我还没有在DbContext或Post类中配置任何与数据库相关的内容


我使用SQL Server作为数据库,2.1.0提供程序版本。

我不知道为什么,但现在我发现问题是我的DbContext注册为singleton


多亏了@IvanStoev

,您所描述的内容通常不会发生,这让我觉得您有一些代码可以在db上下文中加载用户。您能否证明db是干净的,例如var db=new YourDbContext;var posts=db.posts.ToList;仍然填充Post.User属性?序列化时上下文是否仍然打开?当序列化程序试图访问导航属性时,可能是延迟加载在填充导航属性。@DevilSuichiro否,与EF6相反,EF core默认没有延迟加载。正如OP所说,您需要采取一些谨慎的步骤来启用它。我认为上下文生命周期不是应该的。斯卡拉斯,不显示代码,你不可避免地只分享你意识到的东西,而不是在你没有意识到的情况下起作用的东西。