Asp.net 在运行时动态调整EDMX定义

Asp.net 在运行时动态调整EDMX定义,asp.net,entity-framework,asp.net-web-api,runtime,odata,Asp.net,Entity Framework,Asp.net Web Api,Runtime,Odata,我们有一个EF edmx文件用于定义db的概念模型。这比从我们的odata提供商访问数据库更有用 目前的问题是,我们发现由于edmx的大小(非常大),某些情况下会导致EF真正陷入困境。主要影响是表之间的关系。当在表之间添加关系时,当odata或webapi显示该数据时,延迟似乎呈指数增长 情况是,我们只在5%的运行时案例中使用这些关系 我的问题是,有没有一种方法可以在运行时动态更改edmx,以便在需要时添加关系,这样在95%的其他情况下,它们不会影响性能?这是否可能在运行时更改edmx定义,是否

我们有一个EF edmx文件用于定义db的概念模型。这比从我们的odata提供商访问数据库更有用

目前的问题是,我们发现由于edmx的大小(非常大),某些情况下会导致EF真正陷入困境。主要影响是表之间的关系。当在表之间添加关系时,当odata或webapi显示该数据时,延迟似乎呈指数增长

情况是,我们只在5%的运行时案例中使用这些关系

我的问题是,有没有一种方法可以在运行时动态更改edmx,以便在需要时添加关系,这样在95%的其他情况下,它们不会影响性能?这是否可能在运行时更改edmx定义,是否会对此产生影响


谢谢

您是想在整个执行过程中多次更改它,还是在启动时配置它,并且在应用程序的整个执行过程中保持不变?它可能在执行时多次更改这里有一些问题。1) 实体框架在每个应用程序域中运行一次模型配置。在进行任何更改之前,您可能需要找到一种方法来清除此问题。2) 它可能需要重新运行所有配置并重建所有视图。这个很贵。我担心这可能会导致比修复的性能问题更多的性能问题。您是否因为上下文跟踪的实体数量太多而存在问题?