我有一个使用 Entity Framework 6 运行的小型 MVC Web 应用程序。通过浏览我的开发人员上的主页(例如 www.mywebsite.dev)启动应用程序时。机器应用程序池开始并按预期加载页面。
尽管主页非常轻量级并且仅从数据库中获取一些内容(2 个菜单、2 个带有文本的段落以及一个包含 3-4 个对象的集合),但应用程序池在刚刚加载后已经 > 200 MB (!)主页一次..
使用这篇文章和这篇文章,我设法弄清楚了如何分析管理内存,并且我还删除了一些阻止上下文处理的静态属性。DbContext 已禁用延迟加载,
public class MyContext: DbContext
{
private readonly Dictionary<Type, EntitySetBase> _mappingCache = new Dictionary<Type, EntitySetBase>();
#region dbset properties
//Membership sets
public IDbSet<UserProfile> UserProfiles { get; set; }
public IDbSet<Project> Project { get; set; }
public IDbSet<Portfolio> Portfolio { get; set; }
public IDbSet<Menu> Menu { get; set; }
public IDbSet<MenuItem> MenuItem { get; set; }
public IDbSet<Page> …Run Code Online (Sandbox Code Playgroud)