The Will Will Web

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

執行 Entity Framework 的「從資料庫更新模型」為何不更新

最近有同事遇到一個技術問題,他們的專案是採用 Entity Framework 技術,不過由於客戶端需求變更,導致資料庫欄位屬性被變更了,原本為 NOT NULL 的欄位從資料庫端已經改成了可允許 NULL,不過他們在 Visual Studio 2010 的 ADO.NET 實體資料模型設計工具 (ADO.NET Entity Data Model) 編輯 EDMX 檔案時發現執行 從資料庫更新模型 (Update Model from Database) 並不會自動反應資料庫的欄位變更到這裡,但是新增、刪除資料庫欄位時卻會更新,他們覺得很奇怪,以下就是我的回答。

... 繼續閱讀 ...

Entity Framework 如何呼叫 SQL 裡沒有回傳參數的預儲程序

其實早在 Entity Framework 4.0 之前就已經提供了從 ObjectContext 呼叫 預儲程序 (Stored Procedure) 的能力,不過早期的 Entity Framework V2 版本支援度不夠,以致於只要是這個預儲程序的回傳值的型別不是 實體 (Entity) 的話,就會無法直接從 ObjectContext 進行叫用,這個架構上的問題直到 V4 這個版本才正式解決,以下就是從 Entity Framework 呼叫預儲程序的方法。

... 繼續閱讀 ...

使用中的 SQL Server 版本不支援資料型別 'datetime2'。

當初開始用 Entity Framework 的時候,第一個遇到的問題就是資料無法儲存變更,而錯誤訊息就是【使用中的 SQL Server 版本不支援資料型別 'datetime2'。】,我雖然知道 datetime2 是 SQL Server 2008 才出現的資料型態,不過我的資料庫明明就是 SQL Server 2005 而且在建立 Entity Framework 模型的時候也沒有指明我要用 SQL Server 2008 啊,為什麼還會報出這種錯誤呢?!底下就讓我娓娓道來。

... 繼續閱讀 ...

在 Entity Framework 設計工具中的自動版面配置技巧

利用 Visual Studio 2010 的 Entity Framework 設計工具從資料庫產生模型後通常會先自動排版,不過每一個產生的模型(Entity)預設寬度都是固定的,導致一些表格名稱太長的項目都顯示不完整 (如下圖示),而 Entity Framework 設計工具似乎還沒有聰明到可以依照我的意思自動排版,但我今天研究出一個新方法可以幫我解決此問題。

... 繼續閱讀 ...

解決 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 查詢效能不彰。

... 繼續閱讀 ...

Entity Framework 快速上手與學習資源整理

Entity Framework 的中文學習資源的確蠻少的,也許這門技術還太新,所以真的很少人在用,因此要學會 Entity Framework 也可能需要花不少精神,我個人對 Entity Framework 還還算新手上路的階段而已,學習的過程中也發現了一些快速上手的訣竅,也許可以讓新手不要那麼恐懼新技術。

... 繼續閱讀 ...