1.首先在 Windows Azrue 建立一網站,及MsSQL資料庫,並在網站設定處建立彼此連結,此部份在此不做細部說明。
2.打開Visual Studio2013 ,開啟新專案,檔案(F) > 專案(P) > ASP.NET Web應用程式。
2.1此處選擇.NET Framework4.5.1,較舊的版本在之後要設定Migrations時會找不到套件。
2.2專案型態選擇Visual C# > Web 出現在右邊的選項ASP.NET Web應用程式。
2.3下面名稱(N):的欄位,請輸入專案的名稱。
2.4選擇後按下確認,新增專案。
3.建立Models,於方案總管的Models資料夾按滑鼠右鍵,選擇加入(D) > 類別(C)...
3.1輸入類別名稱,按下新增(A)產生。
3.2於新產生的類別中,設定Model的內容,範例是建立五個資料,然後建置(B)執行建置方案,如果命名為id,系統有機會預設成主鍵,此範例指定PersonID為主鍵,上面加[Key]。
4.建立Controller並跟Mode連結。
4.1於方案總管的Controllers資料夾按滑鼠右鍵,加入(D) > 控制器...
4.2選擇 具有動作、使用Entity Framework API2 控制器 這項按新增。
4.3.設定控制器,控制器名稱號(C):,命名建議同Model後面加Controller;模型類別(E):,選取右方展開功能後,選擇指定的Model。
4.4使用非同步控制器動作,這項可視需求來選擇。
4.5資料內容類別(C):,選擇右下方的新的資料內容...,會產生一視窗,建議中間反白部份改成同Model的名稱,按加入回上一視窗,再按加入產生Contrller(控制器)。
5.Enable Migrations 此部份官方範例未說明,自測時少這驟,會導致網站發佈,連結失敗,必且須在.NET Framework4.5版本或之上才有效。
5.1執行 工具(T) > 程式庫套件管理員(N) > 套件管理器主控台(O) 。
5.2下方會出現可輸入的畫面,輸入enable-migrations ,執行。
5.3再輸入 add-migrations ,執行。
5.3在使用MVC4專案時,執行5.2後,可能會發生錯誤,產生一些紅字說明,此時則需要再輸入Enable-Migrations -ContextTypeName WebGameServer.Model.UesersContext,執行,以及Enable-Migrations -ContextTypeName WebGameServer.Model.PlayerContext。
範例專案名:WebGameServer
範例Model名: Player
6.至Azure 的網站取得連結檔,及DB取得連結字串。
6.1取得連結字串,進入Azrue,選擇DB,此處是用預設的跟網站有設好連結的MutsuDB,點擊進入。
6.2選擇右下方的,顯示連接字串進入,即出現中間的畫面,選擇ADO.NET的內容,將紅框內容字串Copy至文字檔中,即完成取得連接字串,Password={在此輸入您的密碼}這部份要改成存取該資料庫的密碼。
6.3再選擇網站,範例部份,網站是使用Mutsu,點擊右方項目進入。
6.4再選擇右下方,下載發行設定檔,然後指定該檔案的存檔路俓,即完成取得連結檔。
7發佈至Azure。
7.1回到Visual Studio2013 專案,在方案總管下,選取專案,按滑鼠右鍵,選擇發行(B)...。
7.2進入發行Web畫面,選擇匯入(I)...,進入匯入發行設定。
7.3選擇右下方瀏覽(B)...,選擇步驟6.4所儲存的發行設定檔,然後按OK,按OK儲檔。
7.4接著進入連線設定,只要上一步驟正常,資料會自行產生,可用驗證連線(V),測試連線是否正常,按下一個(X)>,進入下個設定。
7.5進入設定,將檔案發行選項點開,移除目的地的其他檔案(V)打勾。
7.6再設定資料庫的連結,裡面會顯示專案中有設定的Model(藍框),在下方將步驟6.2取得的連接字串填入,按下一步,可用預覽看有那些檔案上傳,或直接執行發行(P)。
7.7發行完後,瀏覽器開打開一新視窗,即成功。
8.這部份補充,使用非同步,跟資料庫做查/增/刪/修操作,加在需操作的Controller中。
PlayerAsyController db = new PlayerAsyController();
查詢
Player _player = await db.Player.FindAsync(i); //i為key值,第i筆
增加
db.People.Add(Player); //創新
Player.FirstName = "aa";//給值
Player.LastName = "bb";//給值
await db.SaveChangesAsync(); //記錄
刪除
db.Player.Remove(Player);
await db.SaveChangesAsync(); //記錄
修改
await db.Database.ExecuteSqlCommandAsync("UPDATE People SET FirstName = 'UPDATE" + i + "' WHERE PersonID = " + i);
await db.SaveChangesAsync(); //記錄
沒有留言:
張貼留言