上次實(shí)現(xiàn)了依賴注入,但是web項(xiàng)目必須要引用業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層的實(shí)現(xiàn),項(xiàng)目解耦并不完全;另一方面,要同時(shí)注入業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層,注入的服務(wù)直接寫(xiě)在Startup中顯得非常臃腫。理想的方式是,web項(xiàng)目近引用接口而不引用實(shí)現(xiàn),在配置文件中進(jìn)行配置實(shí)現(xiàn)程序集合類,注入業(yè)務(wù)邏輯層而不必注入數(shù)據(jù)訪問(wèn)層。
一、數(shù)據(jù)訪問(wèn)層
在項(xiàng)目中摒棄數(shù)據(jù)訪問(wèn)層或者使用EntityFramework作為數(shù)據(jù)訪問(wèn)層。
在項(xiàng)目中數(shù)據(jù)訪問(wèn)層主要實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),仔細(xì)看一下EntityFramework發(fā)現(xiàn)DbContext的功能完全實(shí)現(xiàn)了查、增、刪、改等各種操作,并且有緩存等功能,本身就實(shí)現(xiàn)了倉(cāng)儲(chǔ)模式,并且比自己封裝的數(shù)據(jù)存儲(chǔ)層的功能還強(qiáng)大,干脆在項(xiàng)目中用EntityFramework作為數(shù)據(jù)存儲(chǔ)層。刪除掉Ninesky.InterfaceDataLibrary項(xiàng)目和Ninesky.DataLibrary項(xiàng)目。
注:項(xiàng)目結(jié)構(gòu)調(diào)整的確實(shí)太頻繁了,以后一段時(shí)間內(nèi)絕不再調(diào)整了。
二、實(shí)現(xiàn)業(yè)務(wù)邏輯層。
添加業(yè)務(wù)邏輯層接口項(xiàng)目Ninesky.InterfaceBase
1、添加接口基類接口InterfaceBaseService,添加基本的查、增、刪、改方法
Vi