我有一个文档生成器,目前包含约 200 个项目的查询,但完成后可能会超过 500 个。我最近注意到一些映射表示延迟加载。这给文档生成器带来了一个问题,因为它需要根据生成的文档来访问所有这些属性。
虽然我知道DataLoadOptions
可以指定到上下文,这将导致我必须显式指定可能加载的每一列。这超出了 1000,因为所有数据获取都发生在一个上下文中。
有什么方法可以禁用上下文的延迟加载或显式启用急切加载以忽略延迟加载属性?也许扩展数据库上下文类并覆盖某些东西?
你需要设置DeferredLoadingEnabled http://msdn.microsoft.com/en-us/library/Bb386920%28v=VS.90%29.aspx,然后使用一些反射来包含每个属性,例如:
DataLoadOptions dataLoadOptions = new DataLoadOptions();
foreach (PropertyInfo pi in typeof(SomeThingyClass).GetProperties())
{
ParameterExpression paramExp = Expression.Parameter(typeof(SomeThingyClass), "s");
Expression expr = Expression.Convert(Expression.Property(paramExp, pi.Name), typeof(object));
LambdaExpression lambda = Expression.Lambda(expr, paramExp);
dataLoadOptions.LoadWith((Expression<Func<SomeThingyClass, object>>) lambda);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)