为什么要使用Entity Framework
本文介紹從DDD(Domain-Driven Design[領(lǐng)域驅(qū)動設(shè)計])的角度來說說為什么要使用Entity Framework(以下都會簡稱為EF),同時也看出類似Drapper之類的簡陋ORM不足的地方。
設(shè)想業(yè)務(wù)都是大家知曉的權(quán)限管理,實體類如下。
讀到這里,請先思考一下,給一個?User?添加一個新的?Role?,你會怎么寫代碼?,然后再接下去看看DDD認(rèn)為應(yīng)該怎么寫。
接下來,我們來看看怎么調(diào)用,可以看出一切都是圍繞User這個領(lǐng)域模型的。
var user = userService.GetUserById(userId); user.AddRole(role);//可以看出用了領(lǐng)域模型后,代碼更加OOP了~userService.Update(user);更加理想的DDD,是連userService都不要,但目前很難實現(xiàn)這種做法。
var user = User.Init(userId); user.AddRole(role); user.SaveChange()理想很豐滿,現(xiàn)實很骨感,除了技術(shù)不能完全實現(xiàn)DDD的思想,我們還要考慮性能問題,
所以目前的DDD的做法是推薦搜索功能,也就是說搜索出現(xiàn)的數(shù)據(jù)作展示用,不會再對搜索出來的數(shù)據(jù)進(jìn)行增刪改,那么就怎么快怎么來。你愛用Drapper也行,用EF+原生Sql也行,用Ado.Net也行。
不是說面向過程化的思想不行,能抓老鼠的就是好貓。
但前輩們的經(jīng)驗是,面對復(fù)雜的業(yè)務(wù),用DDD的思想來解決會更好。
所以
今天你OOP,DDD了嗎?^_^
原文地址:?https://www.cnblogs.com/weixb/p/9640089.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的为什么要使用Entity Framework的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core中的CSV解析库
- 下一篇: 如何在你的项目中集成 CAP【手把手视频