gpt4 book ai didi

c# - 防止 Entity Framework 5 查询 Information_Schema_Tables

转载 作者:行者123 更新时间:2023-11-30 16:19:33 24 4
gpt4 key购买 nike

在 EF 4.1 中,您过去常常删除 IncludeMetadataConvention 以防止 EF 在每次查询时查询数据库元数据。

在 EF 5 中,我收到有关 IncludeMetadataConvention 已过时的警告,而在 LinqPad 中,我可以看到 EF 现在正在查询每次使用时的迁移历史记录。我正在处理数据库优先项目(但使用 POCO 和 DbContext)。我不想要这些额外查询的开销。如何关闭它们?

更新我发现我可以通过调用在每个 dbContext 的基础上禁用它

System.Data.Entity.Database.SetInitializer<theDbContext>(null);

但是,我希望能够在全局范围内禁用初始化(想象一个大型应用程序,我们希望确保在部署用于生产时我们不会运行这些查询(并且绝对不会尝试创建数据库)。

最佳答案

如果您需要为大型应用程序中的每个上下文类型执行此操作,您可以创建一些代码来遍历所有程序集,找到从 DbContext 派生的所有类型并通过反射调用该调用对于每个找到的类型。

顺便说一句。从 EF 4.3 开始,您还可以 change initializer from configuration但它仍然是基于上下文的,因为人们通常不会有多个。

关于c# - 防止 Entity Framework 5 查询 Information_Schema_Tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15230367/

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