2014-06-25 65 views
0

我目前正在學習LINQ,尤其是SQL實體框架的請求。 我以前寫過原生的SQL查詢,並且在我的項目「SQL_Connection」或其他類中用一個類實現了它。 所以我把所有的SQL程序存儲在一個類中。.NET實體框架,乾淨的方式來實現它?

現在,當我意識到從一開始就學習實體框架的權利和最乾淨的方式時,我問自己,我在哪裏放置了我在項目中創建的所有linq過程。 是否有經驗的人將他們放入相關類的類文件中,或者他們是否使用了存儲所有這些過程的大型sql類?

+3

最乾淨?編程不涉及「est」的東西! –

回答

0

我在問自己,我把我在項目中創建的所有linq過程放在哪裏。

你在哪裏創建它們。

如果你對.NET不完全無知,你將會得到一個LINQ查詢的TON,只有一些將與EF相關 - 語法是相同的。你將在你的代碼中使用LINQ來對內存數組進行求和和聚合,並做很多事情。

LINQ的美妙之處在於,對底層提供者的所有更改都是由編譯器隔離和/或檢查的,所以不需要在一個地方全部「全部重命名錶」。

我把LINQ放在需要它的地方。這允許我在沒有所有查詢類的母親的情況下隔離圖層。特別是一些LINQ查詢是涉及一個或多個數據訪問的多步查詢,然後在內存中進行分組和關聯。

嚴重的是,「一個統治他們所有的類」(sql)是SQL是一個字符串的事實,所以在數據庫更改的情況下,您需要找到所有涉及該更改元素的SQL,並且請不要通過大量的代碼。 LINQ絕對不需要這個。

+0

謝謝你的回答!說實話,我是一名.NET軟件開發人員,3年來一直沒有與LINQ取得聯繫。這就是爲什麼我很難理解,如何以正確的方式使用它。那麼你是否會說,最好是從SQL中請求一個對象列表,然後,我將選擇LINQ需要的所有東西? – zvaenr

+0

不可以。不可以。因爲LINQ延遲了執行,所以你的接口暴露了一個IQueryable,並且過濾可以在你想要的地方完成。只有當實際要求數據時纔會執行查詢。 Linq基礎知識 - 在問及如何做得很好之前,請先了解它可以做些什麼。 – TomTom

0

這取決於你的樂趣。回答這個問題:爲相關的一組對象創建BLL類。由此,一個小的改變不會讓你發癢。假設你在表格中添加了一個新列,讓表格(和其他相關的)的操作很容易,對嗎?避免太大的文件。儘量保持模塊化等。

如果您需要閱讀,請檢查this Wiki link about MVC architecture