写点什么

解决 Entity Framework 中大数据模型问题的技巧

  • 2008-12-08
  • 本文字数:811 字

    阅读完需:约 3 分钟

Entity Framework 的开发领导 Srikanth Mandadi 称这个包含两部分内容的文章为“解决 Entity Framework 中的大数据模型问题”,但很明显它的含义为“使用一些技巧”来解决这些问题。该文章首先谈到了无论对任何应用来说,期望的实体数量在 50 到 100 之间。超出这个范围会导致编辑器无法使用。

Entity Framework 有一些严重的性能问题。例如,每次使用一个新的连接字符串时,针对整个数据模型的基于 XML 的元数据都会被加载到内存中。如果你有一些共享通用数据模型的小型应用,那么向其中任何一个增加新的实体都会导致所有应用变慢。从本质上来说,这种限制使得我们无法将 Entity Framework 的数据模型放到共享库中。

视图的生成是 Entity Framework 设计上的另一个败笔之处。Srikanth Mandadi 解释到:

当查询或是 SaveChanges 第一次发生时,这个过程就开始了。视图生成步骤的性能不仅取决于模型的大小,还与模型之间的联系有关。如果两个实体通过一个继承链或是 Association 连接起来,我们就称其为连接的。与此类似,如果两张表通过一个外键连接起来,我们也称其为连接的。随着实体和 Schema 中表的连接数量的增长,视图生成的代价就越来越大了。

为了解决这些问题,Srikanth Mandadi 建议将大的数据模型划分为小的子集。有两种方式可以做到这一点,但感觉都不怎么样。

第一种仅仅是使用完全独立的子集。如果两个或多个子集都需要某张表,那么就为他们分别创建独立的实体。这种方式导致跨子集的直接调用无法实现,也容易导致实体的过度膨胀。

另一种方式是“使用”Schema 中的语法。IDE 不支持这么做,需要我们手工编辑 XML 以说明数据库需要使用另一个数据模型中的实体。除了手工编辑 XML 的痛苦外,它只能创建单向的连接。如果数据模型 A 使用了数据模型 B 中的实体,那么后者将无法引用前者。

你可以在 ADO.NET 团队的博客上阅读该文章第一部分第二部分的所有内容。

查看英文原文: Working Around Entity Framework’s Large Data Model Issues

2008-12-08 05:221984
用户头像

发布了 88 篇内容, 共 253.7 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

一个HashMap,阿里面试官竟然跟我扯了半个小时!,掌握这6大技能体系

android 程序员 移动开发

一文了解Dart语法,kotlin密封接口

android 程序员 移动开发

一文理解模块化、组件化、插件化的区别,最新Android高级面试题汇总

android 程序员 移动开发

【带着问题学】关于LeakCanary2,2021百度Android岗面试真题收录解析

android 程序员 移动开发

【绝对干货】超全Android中高级面试复习大纲,安卓面试题目2019

android 程序员 移动开发

一个五年Android开发者小米、阿里、字节跳动,最新阿里+头条+腾讯大厂Android笔试真题

android 程序员 移动开发

【转载】3-5年的Android工程师最容易遇到4个瓶颈是什么

android 程序员 移动开发

【需求解决系列之四】Android App 在线 自动更新,android观察者模式

android 程序员 移动开发

一个34岁出来面试还被拒绝的Android程序员有多惨?,android开发软件安装JAVA路径

android 程序员 移动开发

一文读懂 AOP _ 你想要的最全面 AOP 方法探讨,kotlin数据库框架

android 程序员 移动开发

【建议收藏】Android中高级大厂面试源码秘籍(1),android开发实战湖南师范大学出版社

android 程序员 移动开发

【微信小程序】开发实战 之 ,这份333页关于性能优化知识点的PDF你不能不看

android 程序员 移动开发

【最强】Android 项目集成 Flutter 实战分享,精通android游戏开发

android 程序员 移动开发

【译】Flutter vs React Native vs Native,android开发社区

android 程序员 移动开发

直播回顾 | MatrixDB 定义下一代时序架构(内附PPT下载)

YMatrix 超融合数据库

车联网 物联网 时序数据库 MatrixDB 超融合时序数据库

【孔乙已】生产者消费者有四样写法,android插件化和组件化

android 程序员 移动开发

一个Android开发真实的996生活,我们到底在追求什么?,kotlin中文教程

android 程序员 移动开发

一年Android工作经验,一举拿下百度、网易,38岁的中年失业者怎么活下去

android 程序员 移动开发

【原理+实战,android音视频开发何俊林

android 程序员 移动开发

【面试专题】2021年字节,面试安卓工程师会问到那些问题

android 程序员 移动开发

【面试官爸爸】来给我讲讲View绘制,腾讯T2亲自教你

android 程序员 移动开发

浪潮云说丨千呼万唤,浪潮云智能视觉来了!

浪潮云

云计算

一位Android程序员入坑Flutter后整理出一份超详细的学习笔记

android 程序员 移动开发

腾讯云音视频发布腾讯云视立方等多款新品,助力全行业快速构建音视频能力

科技热闻

【建议收藏】Android中高级大厂面试源码秘籍,面试题+笔记+项目实战

android 程序员 移动开发

9.9元试用无影电脑,开启云上办公娱乐新体验

【译】Flutter 2,Android程序员必会

android 程序员 移动开发

一次奇葩面试经历,没去过BAT的Android研发就不配面试架构师?

android 程序员 移动开发

【自学Flutter】4,安卓移动开发基础案例教程

android 程序员 移动开发

下一个三年,联想要寻找取天火的人

脑极体

一个优秀程序员不可避免的问题:内存泄漏,ffmpeg音视频开发实战6下载

android 程序员 移动开发

解决Entity Framework中大数据模型问题的技巧_.NET_Jonathan Allen_InfoQ精选文章