为什么要使用Entity Framework
本文介绍从DDD(Domain-Driven Design[领域驱动设计])的角度来说说为什么要使用Entity Framework(以下都会简称为EF),同时也看出类似Drapper之类的简陋ORM不足的地方。
设想业务都是大家知晓的权限管理,实体类如下。
读到这里,请先思考一下,给一个 User
添加一个新的 Role
,你会怎么写代码?,然后再接下去看看DDD认为应该怎么写。
接下来,我们来看看怎么调用,可以看出一切都是围绕User这个领域模型的。
var user = userService.GetUserById(userId);
user.AddRole(role);//可以看出用了领域模型后,代码更加OOP了~userService.Update(user);
更加理想的DDD,是连userService都不要,但目前很难实现这种做法。
var user = User.Init(userId);
user.AddRole(role);
user.SaveChange()
理想很丰满,现实很骨感,除了技术不能完全实现DDD的思想,我们还要考虑性能问题,
所以目前的DDD的做法是推荐搜索功能,也就是说搜索出现的数据作展示用,不会再对搜索出来的数据进行增删改,那么就怎么快怎么来。你爱用Drapper也行,用EF+原生Sql也行,用Ado.Net也行。
不是说面向过程化的思想不行,能抓老鼠的就是好猫。
但前辈们的经验是,面对复杂的业务,用DDD的思想来解决会更好。
所以
今天你OOP,DDD了吗?^_^
原文地址: https://www.cnblogs.com/weixb/p/9640089.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
为什么要使用Entity Framework相关推荐
- EF-Entity Framework 相关技术点收集贴
不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...
- C#综合揭秘——Entity Framework 并发处理详解
引言 在软件开发过程中,并发控制是确保及时纠正由并发操作导致的错误的一种机制.从 ADO.NET 到 LINQ to SQL 再到如今的 ADO.NET Entity Framework,.NET 都 ...
- 《你必须掌握的Entity Framework 6.x与Core 2.0》正式出版感想
前言 借书正式出版之际,完整回顾下从写博客到写书整个历程,也算是对自己近三年在技术上的一个总结,整个历程可通过三个万万没想到来概括,请耐心阅读. 写博.写书完整历程回顾 从2013年12月注册博客园账 ...
- Entity Framework Code First在Oracle下的伪实现
为什么要说是伪实现,因为还做不到类似MsSql中那样完全的功能.Oralce中的数据库还是要我们自己手动去创建的.这里,我们舍掉了Model First中的EDMX文件,自己在代码里面写模型与映射关系 ...
- Entity Framework:Code-First Tutorial开篇
这个系列文章是关于Entity Framework Code-First的英文系列文章,内容不错,每篇一个主题知识点介绍,特转载过来 原文地址:http://www.entityframeworktu ...
- entity framework 使用Mysql配置文件
2019独角兽企业重金招聘Python工程师标准>>> <?xml version="1.0" encoding="utf-8"?> ...
- Entity Framework CodeFirst数据迁移
原文:Entity Framework CodeFirst数据迁移 前言 紧接着前面一篇博文Entity Framework CodeFirst尝试. 我们知道无论是"Database Fi ...
- 看看Entity Framework 4生成的复杂的分页SQL语句
之前发现Entity Framework 4生成的COUNT查询语句问题,今天又发现它生成的分页SQL语句问题,而LINQ to SQL却不存在这个问题. >>> 来看一看,瞧一瞧! ...
- Entity Framework的启动速度优化
最近开发的服务放到IIS上寄宿之后,遇到一些现象,比如刚部署之后,第一次启动很慢:程序放置一会儿,再次请求也会比较慢.比如第一个问题,可以解释为初次请求某一个服务的时候,需要把程序集加载到内存中可能比 ...
- 主攻ASP.NET.4.5 MVC4.0之重生:Entity Framework生成实体类步骤(十三)
1.新建一个ASP.NET MVC 4.0 项目 2.安装Entity Framework Power Tools 3.Entity Framework- -RepositoryReverse Eng ...
最新文章
- 日本奥委会主席否认为争取奥运会主办权行贿
- 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM
- java读取ini_java 读取ini配置文件
- 【Linux系统编程学习】匿名管道pipe与有名管道fifo
- Python学习笔记之类(三)
- css transition过渡
- 比量iOS6/iOS7, 3.5inch/4.0inch
- 手机不用了,如何消除里面的数据和信息而又不被人可以恢复?
- java 递增 实现_Java编程实现递增排序链表的合并
- linux日志文件优缺点,Linux日志文件总结
- 小程序页面之间的跳转方法
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---11
- python中home定义是什么_搞清楚Python中self的含义
- xp母盘制作流程+QQDLL修改和系统文件DLL修改(转)
- 软件技术专业-就业提示(一、实施工程师)
- c++ 字符串替换指定字符
- 【回归预测-ELM预测】基于遗传算法优化极限学习机实现风电数据回归预测附matlab代码
- mysql5.6 relay.info_Relay log 导致复制启动失败
- 使用 Notepad 或 TextEdit 来编写 HTML
- maximo跟java_maximo遇到的错误问题