The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

分享幾個 LINQ to SQL 執行各種 Join 查詢的技巧

我發現許多人對使用 LINQ 執行 JOIN 查詢並不是那麼的熟悉,而且語法也不見得像 T-SQL 那樣直覺,但事實上只是我們比較熟悉 T-SQL 的語法與資料庫架構而已,當我們換成 ORM (Object-relational mapping) 技術後所有對資料的操作必須全部改以「物件」與「實體」來思考,所以在這轉換的過程經常轉不過去,連我自己也有時會忘記怎麼寫,也經常利用 Linq Samples and the Sample Query Explorer 幫我查出適當的寫法。

... 繼續閱讀 ...

解決 N-Tier 多層架構設計下 LINQ to SQL 效能不彰的問題

ASP.NET MVC 的開發原則有個 SoC (Separation of Concern) 的觀念,我們在開發較大型的 ASP.NET MVC 應用程式時會特別將資料存取層(Data Access Layer) 再細分為兩個層次,分別是 Repository Layer (資料倉儲層) 負責資料存取與欄位格式驗證,與 Service Layer (服務提供層) 負責資料篩選與商業邏輯驗證,但分層之後遇到了一個之前沒想過的問題,進而導致 LINQ to SQL 查詢效能不彰。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (12):Model Binder 的陷阱

在使用 Model Binder 繫結資料模型時 (Entity Type) ,大部分情況都是非常方便的,可有效減少 Action 參數的用量,也可大幅降低程式複雜度。但是在我們之前的某個專案就採到一個 Model Binder 的地雷,這個地雷不是 ASP.NET MVC 的 Bug,而是一個開發時應注意的地方,採用標準的寫法準沒錯。

... 繼續閱讀 ...

SqlCacheDependency 如何套用到有多重表格關聯的情況

我們都知道 SqlCacheDependency 有個很大的限制,就是一次只能用「單一表格」做判斷,如果你有個檢視表(View)或使用的 SQL 語法有 JOIN 兩個以上的表格,就無法利用 SqlCacheDependency 幫你達成快取相依(CacheDependency)的設計,但我們大多的案子很少有「單一表格查詢」的狀況,以導致很多情境下無法使用 SqlCacheDependency 感覺十分懊惱,但我們最近想出了新方法!

... 繼續閱讀 ...

解決 LINQ to SQL 在建置時會發生 validation errors 的問題

最近有個專案很奇怪,我有個 Visual Studio 方案檔,開啟後會載入好幾個專案(Project),其中有個專案負責所有與 Data Access Layer (DAL) 有關的工作,但我每次剛開啟 Visual Studio 2008 並載入專案後都無法直接按下 F6 直接建置方案( Build Solution ),都一定要先建置(Build)含有 DBML 的那個專案,才能再按下 F6 建置整個方案。

... 繼續閱讀 ...