我覺得我可能會做些愚蠢的事情。值得在Linq to SQL之上放置業務邏輯層嗎?
我已經有一個Linq to SQL庫運行好幾年了,並且在多個使用相同數據庫的應用程序中使用它。雖然我並不滿意,但我還是得到了一個新項目。我認爲在應用程序和Linq to SQL庫之間放置一個業務邏輯層是有幫助的。問題是我設計的越多,看起來就越像我試圖實現的東西,就像Linq to SQL一樣。
例如,我決定應用程序應該有一個業務邏輯入口點。因此,入口點(我稱之爲MCP)具有系統中類的屬性,並且此屬性具有包含來自相應表的所有對象的「列表」(可能是IQueryable)。開始聽起來很像Linq to SQL數據上下文......再加上我覺得在每個現有對象周圍都有一個額外的對象/存取器是一大堆額外的輸入,只是爲了隱藏「真實」的對象。
因此,我有點害怕,我只是做了我已經有的重新實施。
另一方面,我希望改善一切工作方式。例如,確保一個對象具有一個邏輯責任,而不是一種訪問系統中其他任何東西的方式。 (例如一個CarCP可能有一個AddDriver(Person p)的方法,但Person不一定有方法返回到CarCP。)
所以也許最好有這個中間層,但我只是很糟糕的設計?