使用LazyLoadedProxies时,efcore 2.2关闭特定查询的代理创建

时间:2019-01-18 21:51:03

标签: c# entity-framework entity-framework-core ef-core-2.2

我有一个应用程序,在大多数地方我都希望能够使用LazyLoadedProxies,因此在OnConfiguring中调用UseLazyLoadingProxies。

在我要序列化对象以及其他可能将其传递到应用程序另一部分的对象时,我并不需要代理,因此我不希望出现任何N + 1错误,因此希望确保我没有代理。

如何为特定查询禁用代理。

1 个答案:

答案 0 :(得分:0)

  

我不需要任何N + 1错误,因此想确保我没有代理。

不!您不能在EF Core查询中禁用代理创建。但是对于 JSON序列化,您可以按如下所示将其关闭:

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddMvc()
        .AddJsonOptions(
            options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
        );

    ...
}