【发布时间】:2012-10-02 11:13:59
【问题描述】:
好的,问题来了,我在数据库中有一个视图,其中包含大量信息,100 列,vwComponantA
我的 .net 应用程序中有一个名为 ComponantA 的实体,它包含使用 [Column()] 属性的所有映射,这很好,可以工作,但速度很慢,因为它在 DB 上执行 select * 来填充对象,这又可以了。
为了解决上述性能问题,我引入了 DynamicLinq。这允许我减少我带回的列的数量,并且仍然允许我使用类型安全来使用普通的 Linq 进行查询,这很棒。然后处理我带回的缩减字段,我有单独的 POCO 组件,每个组件都有自己的一组 [Column] 属性,在运行时使用映射类进行映射。
问题在于,在处理大型数据集时,它们之间的映射可能会很慢,10000 条记录映射 10000 次等。EF 所做的是创建一个 DynamicProxyClass,然后您可以在组件之间进行映射。
我的问题是,我怎样才能避免映射并让 EF 为我做映射? (由于动态linq,我正在处理IQueryable而不是IQueryable<T>)
必须有一种方法可以利用 [Column] 属性同时保持查询动态。
这是所有代码优先和实体框架 5。
感谢您的帮助。尼克
【问题讨论】:
标签: entity-framework mapping iqueryable entity-framework-5