我不得不爲我的大學開發系統,其中包括跟蹤幾乎所有的數據(講座,講師,助教,學生等)。 我的數據庫有30張桌子,它很漂亮複雜。 我用EF和linq來解決連接數據庫並從中查詢。 但是我越走越多,我的查詢變得越來越難寫,更不用說維護。 以下是一個查詢的示例:http://pastebin.com/Za1cYMPaLinq,實體框架及其用法
這是非常混亂,你可以看到。
那麼,我濫用LINQ(LINQ可以解決這個問題,但以不同的方式)或LINQ只是不是像這樣的更復雜的系統?
這是一般性問題,不是解決特定問題的方法之一。
不知道我在這裏遵循你的邏輯。我認爲複雜性來自數據庫設計。將這些查詢中的一部分移入視圖(或存儲過程)可以幫助簡化存儲庫層。另外,我不確定我是否同意你的假設,即使用Repository和Specification模式可以降低複雜性並提高可維護性。如果有的話,它會將這些擔憂轉移到架構的不同層面。 – Jeff 2011-06-06 20:56:56
@Jeff,如果他的老闆決定將數據庫移動到Oracle或文檔數據庫,會發生什麼?然後,所有內容都需要重新編碼,因爲業務邏輯已被移至SQL數據庫,該數據庫特定於該特定實施。你是正確的,因爲它把問題轉移到了不同的層次,但是由於OP討論LINQ,我不得不假定他是一個交易程序員,而不是數據庫管理員(是的,這些常常是重疊的,但並不總是)。在這種情況下,似乎維護代碼比數據庫更容易。 – smartcaveman 2011-06-06 20:59:20
那個論點是完整的b.s.除非你爲一家軟件公司工作。我一直存在很長時間才知道決策並非如此。讓自己遠離未來可能發生或可能不會發生的事情,只會增加複雜性。 – Jeff 2011-06-06 21:03:05