Kry*_*zal 14 c# caching ef-code-first entity-framework-6 ef-model-builder
在MSDN文档之后我们可以阅读:
然后缓存该上下文的模型,该模型适用于app域中上下文的所有其他实例.可以通过在给定的ModelBuidler上设置ModelCaching属性来禁用此缓存,但请注意,这会严重降低性能.
问题是模型构建器不包含任何名为ModelCaching的属性.
如何禁用模型缓存(例如,在运行时更改模型配置)?
我有同样的问题:一个数据库上下文,两个或多个不同的数据库模型(仅与表名不同)
我对EF6的解决方案:仍然可以使用数据库模型的内部实体框架缓存,但是可以通过在派生的DbContext上实现IDbModelCacheKeyProvider接口来区分同一DbContext 上的DbModel。
MSDN文档在这里:https : //msdn.microsoft.com/zh-cn/library/system.data.entity.infrastructure.idbmodelcachekeyprovider(v= vs.113).aspx 它说:
在上下文中实现此接口,以使用自定义逻辑来计算用于在缓存中查找已创建的模型的键。通过此接口,您可以具有可以与同一AppDomain中的不同模型一起使用的单个上下文类型,也可以具有使用同一模型的多个上下文类型。
希望它可以帮助某人。
也许旧的 EF4 Docu 仍在 EF6 中。请参阅 modelBuilder.CacheForContextType 不可用
另请参阅 DbContext 构造函数以传入模型DbContext 构造函数
我没有尝试过,但理论上你每次都可以传入一个模型。
| 归档时间: |
|
| 查看次数: |
4443 次 |
| 最近记录: |