發表文章

目前顯示的是 七月, 2014的文章

[Azure] 解決無法使用gmail的smtp寄信

圖片
在系統上作了一個通知機制是當發生例外時,會透過gmail發信給管理者。但上了Azure後,明明有例外,卻遲遲收不到來信.......。到gmail上的設定檢查後,才知道由於網站是放在新加坡與我們平常存取時的位置差太遠,所以判定為異常而遭拒無法發信。

[Azure] Instance資源分配

圖片
釐清一下Instance的資源是怎麼樣分配。以Basic的方案來計算,若建立3個Instance(VM),而記憶體設定為7G,並建立了3個網站。

在分配上如下表
InstanceRAMWebVM-17GWeb-1Web-2Web-3VM-27GWeb-1Web-2Web-3VM-37GWeb-1Web-2Web-3 參考來源http://msdn.microsoft.com/zh-tw/windowsazure/gg442342.aspx

http://social.msdn.microsoft.com/Forums/zh-TW/bc646281-b411-4584-907d-1098e21b7a1b/azure-instance-?forum=winazurewebsite

Visual Studio Online MsBuild出現無法載入Nuget組件

圖片
目前的專案會透過Visual Studio Online簽入後,自動執行建置動作並發佈到Azure。但今天在測試時一直卡在Online Build時會發生錯誤訊息,無法載入某個內部Nuget組件。

[EntityFramework] 查詢結果將字串轉成列舉

圖片
在EntityFramework5後若你希望Entity的欄位是列舉型別,預設支援數值欄位例:int16 int32 Byte等。但若欄位是字串時,該如何處理?
如下的列舉是對應的Char型別
public enum TrCodes { A = 'A', O = 'O', S = 'S', T = 'T', P = 'P', } 試著在查詢時將Entity的欄位轉成列舉


[EntityFramework] DbContext快取測試

圖片
針對DbContext在資料存取的內建快取機制作測試記錄。本文案例以建立一個DbContext為主來執行CRUD,可能會遇到的問題。


例1:直接以SQL更新或資料庫手動更新後,再查Entity的資料還是舊的 以下的程式在以SQL更新資料庫前,就先查詢該筆Entity。而預設的快取機制並不知道你的資料已異動,就算你再執行一次查詢,資料回來還是會是舊的 (更神奇的是用SQL Profiler看,是有執行SQL,只是未填入Entity)。


解決方法:使用AsNoTracking
以上面的程式修改成在第二次查詢時,使用AsNoTracking來直接查資料庫的資料而不使用DbConext的快取