我即将开始一个新项目,想知道“仅代码”是否是正确的方法。我们还在考虑通过设计器采用其他模型优先方法,但宁愿在 EF 设计器之外设计我的领域模型。
我们的域可能包含 100 多个实体。我读到过大量实体会在某种程度上减慢 EF(即:创建上下文并首次调用 SaveChanges)。
由于没有 EDMX 文件来存储元数据,这种方法是否可能更慢?我在网上搜索过,但没能找到这方面的任何信息。
我知道这仍然只在 CTP 中并且缺少很多功能,但此时我只是在寻找输入/指导。
最佳答案
Code-Only 在内部缓存元数据,因此,一旦创建了第一个上下文,您应该会发现 Code-Only 和 EDMX 方法之间的性能差异很小。
您说得对,大量实体会降低 EF 的速度。
通常建议使用预生成 View 来帮助提高大型模型的性能。但该功能依赖于 EDMX 文件,因此它不适用于 Code-Only 也就不足为奇了。
但是,如果您发现需要预编译 View ,您始终可以使用 CodeOnly 的 ToEdmx() 功能从 CodeOnly 世界转移到标准 EDMX 世界。当然,一旦进入 EDMX 世界,您就可以预编译您的观点。
然而,这不一定是我会采用的方法。
无论如何,从可用性的角度来看,我认为具有 100 个或更多 IQueryable 属性的上下文并不理想。
因此,与其从 Code-Only 转移到 pre-gen View ,我可能会利用 Code-Only 的能力来轻松创建更小的目标子域,以最大限度地减少模型的有效大小您正在开发的应用。
结果将是一些快速、易于使用的 ObjectContext,针对当前的任务集。
恕我直言,哪个更可取。
希望对你有帮助
亚历克斯
关于c# - Entity Framework V4 : "Code Only" performance considerations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1481754/