gpt4 book ai didi

c# - 使用 JSON.Net,如果序列化 Entity Framework 对象,则禁用对数据库的访问

转载 作者:行者123 更新时间:2023-11-30 17:38:35 25 4
gpt4 key购买 nike

对于 JSON.Net,我希望对其进行配置,以便在序列化一个 Entity Framework 对象时,它将完全从已经获取的内容和 .NET 内存中执行此操作,本质上,禁用对数据库的额外访问。

我为 nHibernate 找到了一个等效的问题,但我不知道如何为 EF 解决这个问题。

最佳答案

您可以通过设置上下文配置来禁用延迟加载,也可以禁用创建代理

// Disable lazy loading
context.Configuration.LazyLoadingEnabled = false;
// Disable proxies
context.Configuration.ProxyCreationEnabled = false;

但正如其他人已经指出的那样,这是一个糟糕的设计,您应该重新考虑发送 EF 对象,而是使用 LinQ 创建 DTO。

编辑:@raderick 在另一个答案的评论中指出,这可能会产生副作用。因此,如果在序列化对象后您的上下文仍在使用,我建议将其重新打开。请记住,使用 ProxyCreationEnabled = false 创建的对象在您重新打开它时不会神奇地转换为代理。

// Reactivate lazy loading
context.Configuration.LazyLoadingEnabled = true;

关于c# - 使用 JSON.Net,如果序列化 Entity Framework 对象,则禁用对数据库的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com