我使用大型dbContext(800多个实体)处理Entity Framework Code First项目。
我遇到的问题是,第一次构建和编译元数据需要30秒,我无法让所有服务器服务器以这种方式延迟第一个请求(WCF),即使借助于AppFabric WarmUp模块。 一个选项是将已编译的模型缓存在分布式缓存上,因此在实例化DbContext时,服务器场中的其他服务器可以利用已存在的模型。
我发现了一些事情:
不幸的是,所有提到的类型都被EF Code First定义为内部类型(当然DbCompiledModel除外),直到现在我找不到合适的方法来将其缓存出来。
我尝试的另一件事是拥有一个自定义的ObjectContext(在DbContext构造函数中使用它)在哪里编程生成/加载csdl,ssdl和msl映射(来自db模式),但是实际的视图(poco类) )仍然保持未映射到整个数据库上下文。
非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
试试Arthur Vickers在EF团队发布的这篇博文:http://blog.oneunicorn.com/2012/04/21/code-first-building-blocks/
它具体说明了如何缓存已编译的模型。