[EF] 如何在 Entity Framework 中以手動方式設定 Code First 的 Migration 作業

Entity Framework (簡稱 EF) 發展到現在, 版本已經進入 6.1.0, 距離我寫的「在 VS2013 以 Code First 方式建立 EF 資料庫」這篇文章已有半年的時間。如果你和我一樣從那時候開始使用 EF Code First, 那麼你對 EF 應該已經有了基本的了解。依我個人的使用經驗, EF 雖然好用, 但是如果一直使用 AutomaticMigrations 的方式維護你的資料庫, 也許會遇到一些麻煩。因為在正常作業環境下, 資料庫的格式不可能永遠不變; 當我們已經開始寫入資料之後, 情況會變得更複雜, 迫使我們不得不去探究更適當、更有彈性的做法...

...繼續閱讀 »

[ASP.NET] Visual Studio 2013 的 Form 驗證

從 Visual Studio 2013 / .Net Framework 4.5.1 開始, 關於使用者驗證這件事, 可以說做了革命性的改變。大家在過去 12 年來再熟悉不過的表單驗證方式, 在這個版本中再也沒辦法使用 (或者更正確地說, 是沒辦法延用過去的做法)。相反地, 我發現它對 AD 認證的支援變得異常地簡單; 如果你在建立專案時選擇 Windows 驗證, 那麼你的網站自動可以抓取使用者的網域登入帳號, 不必再寫任何程式。如果你要寫的是企業內部網站的話, 就變得相當容易了。至於新的表單驗證方式, 我們會面臨的最大的困難在於不熟悉, 以及資訊太少(未來會慢慢變多, 這是確定的)。其實我是直到最近一個專案中需要用到表單驗證, 才突然驚覺它被改掉了。但是兩個多禮拜下來, 我覺得它其實基本上和原來的表單驗證方式並沒有太多的差異。你只要了解它的運作原理, 就會逐漸習慣...

...繼續閱讀 »

在 VS2013 以 Code First 方式建立 EF 資料庫

當你下載並安裝 Visual Studio 2013 Preview 之後, 要如何建立一個使用 Entity Framework 的專案呢? 在以下文章裡, 我要示範一個使用 Code First 方式建立的專案。我所將描述的內容可以在以下影片中看到... 此外, 你也可以在「Code First 至新的資料庫」這篇文章裡找到相當完整的 Step by step 操作步驟 (中文)...

...繼續閱讀 »

[ASP.NET] 動態變更 SqlDataSource 中使用的 Web.config 裡的 Connection 字串

在我目前的工作中, 環境略為有點複雜, 牽涉到開發、測試和正式環境, 而使用的資料庫伺服器也有兩到三個。如果能夠動態地切換不同環境下所使用的資料庫連線字串, 一定對工作相當有幫助。當然, 如果我都寫 ADO.NET 指令去指定連線字串, 我自然可以動態地決定應該採用哪一個連線字串。但是, 我又不想放棄簡單易用的 GridView/FormView 搭配 SqlDataSource 的作業方式。無可誨言的, 對於那些許多很小型的資料表、很少的資料、很簡單的工作, 實在沒有什麼能比上述情境更方便處理了...

...繼續閱讀 »

在單元測試程式中取得 Connection 字串

這是一個相當古老的問題。不過, 似乎也很久沒遇到過了。當今天再度遇到時, 突然被嚇了一跳。問題是這樣的, 當我們建立單元測試專案時, 如果你看到測試不成功的原因是什麼「System.ArgumentException: 此處不允許應用程式相對虛擬路徑 '~/'」之類莫名其妙的錯誤的話, 大概就是依照以下解法就對了...

...繼續閱讀 »

[SQL] 將關聯資料彙整成單一欄位並傳回的小技巧

今天在設計 Master-Detail 顯示畫面時, 面對煩雜的關聯資料, 一時突發奇想, 然後隨口問了公司的 DBA 老大, 想請教他有沒有什麼想法, 結果竟然有解法, 而且異常的簡單! 所以就有了這一篇文章的出現。(順便說一下, 對一個沒有時間去鑽研資料庫的開發人員而言, 公司裡有位 DBA 是件蠻幸福的事情)...

...繼續閱讀 »

在 Visual Studio 建立資料庫專案

我從很久以前就對 Visual Studio 中新加入的資料庫專案範本感到很有興趣; 但是一來我並不熟資料庫, 二來工作上也用不到, 所以從來沒有真正較深入地研究它, 只有嘗試過建立幾個測試專案, 然後被搞得灰頭土臉, 被迫放棄。但是最近由於工作上突然有了一點變化, 讓我回頭來思考在原來的專案中加上一個資料庫專案的想法, 所以就重新把它又拿來研究一番...

...繼續閱讀 »

在 VS2013 Preview 中使用 Scaffolding 快速建立 CRUD 網頁

在 VS2013 Preview 中, 我們可以透過它的 Scaffolding (支架) 功能在 MVC 專案中快速建立一整套的 CRUD 網頁, 不用寫一行程式碼。甚至, 它已經內建了 Bootstrap 框架, 這使得我們甚至不需要具備美工能力, 也能設計出比以前漂亮得多的網頁...

...繼續閱讀 »

隨時抓出 Table 中的 Schema

我想很多人會想要隨時把資料庫裡面各資料表的 Schema 列印出來,或是放到文件裡面。我不知道其他人都是怎麼做的;或許需要用到什麼軟體。我自己則是習慣寫一個簡單的程式把它列出來。原理很簡單,只需使用 DataReader.GetSchemaTable 方法即可...

...繼續閱讀 »

多重 Transaction 的寫法範例

對於大部份不熟 Database 的網頁程式設計師,即使知道有 Trasnaction 這個功能,也很可能棄之而不用,甚至是從來都沒用過。然而,Trasaction 這個功能是絕對有必要的,在很多狀況下,如果你不用 Trasaction,我實在不知道你到底要怎樣把程式寫好。如果不用 Trasaction,等你讓網站上線,慢慢的使用者開始變多的時候,保證你會開始遇到許多莫名其妙的問題,而且你將發現你甚至無法追蹤問題,當然也無從解決...

...繼續閱讀 »

在 Data Source 中如何設定多重 Data Key 的 SelectParameters

我們在製作 Master/Detail 應用時, 假設使用一個 ListView 作為 Master Container, 再使用一個 ListView 作為 Detail Container, 各自透過一個 Data Source (SqlDataSource 或 ObjectDataSource 等等)。如此, 當我們在 Master Container 選取一個項目後, 下面的 Detail Container 就會顯示對應的項目...

...繼續閱讀 »

使用 DataSet 建立一個三層式架構的資料存取網頁

在上文中作者示範了一個使用 VS2008, 利用 DataSet/ObjectDataSource 以建立 3-tier 的資料存取網頁。重點在於作者是使用螢幕錄影的方式進行教學的, 十分清楚易懂。在微軟又發表一大堆新技術的今天(像 LINQ、Entity Framework 等), 我們仍能看到使用傳統 ADO.NET 方式來存取資料的教學, 這已經愈來愈不容易了...

...繼續閱讀 »