.net core+ado.net如何架构项目
来源:7-4 【应用】同时创建父子资源

金色狼君
2020-08-18
这是我听过最好的.net课程。
有个问题,我感觉ORM操作数据库做普通的增删查改当然是OK的,但是我公司业务比较复杂,经常会有多个表连接的查询,还有大量的复杂数据库操作,以前主要是用存储过程来实现,这种情况似乎不太适合用ORM,想请教老师如果我们用以前的数据库操作方式(如ado.net),那么该如何与.net core进行结合来架构项目呢??
1回答
-
阿莱克斯刘
2020-08-20
这两天生病了,回复有点慢。
这个问题回答起来很简单,但是实际操作其实挺复杂的。简单的回答就是经典三层架构,表示层(UI)-> 业务逻辑层(BLL) -> 数据访问层(DAL)。ado.net可以放在DAL中用来生成DAO,或者你也可以在业务上一点点升级,引入model。但没有model也无所谓,不用model的话就使用纯粹的service(BLL层),通过面对接口的方式实现services的依赖注入。
除了ado.net,其实你也可以研究一下dapper,我觉得可能会更适合你一些。而entity framework也同样可以执行raw sql的操作,读取存储过程。
我现在的IT部门有接近一半的人是BA,负责处理复杂的业务逻辑,他们写好业务以后也是丢给程序员一堆存储过程来调用。其实,对于过于复杂的业务逻辑我们完全没必要想着一定要看懂存储过程,因为那不是我们的工作。存储过程是业务,由BA负责,我们的任务就是使用而已。
我的经验就是把存储过程的输出结果当作你的model来进行系统架构的设计。所以,从这个角度来看,无论你使用ado.net还是dapper还是entity framework的效果都是一样的,都是获取数据然后封装进入数据模型,所以ORM的概念也是行得通的(只不过映射的不是表而是存储过程而已)。
希望我的答案能帮到你,有问题继续追问吧
10
相似问题