星期日, 9月 22, 2019

[VS] 變更 Tangible T4 Editor 背景顏色

在 VS 2017 上學習 EF edmx 時有注意到會安裝 Tangible T4 Editor 來使用,安裝後打開 edmx 才發現不妙,因為 VS 是使用黑色背景,所以一整個眼花撩亂,Orz

安裝 Tangible T4 Editor 後未調整前畫面

[VS] 變更 Tangible T4 Editor 背景顏色-1

VS 內調整 Tangible T4 Editor 的背景顏色

[VS] 變更 Tangible T4 Editor 背景顏色-2

自定背景顏色為 [紅 60]、[綠 60]、[藍 60]

[VS] 變更 Tangible T4 Editor 背景顏色-3

調整後的 Tangible T4 Editor 畫面

[VS] 變更 Tangible T4 Editor 背景顏色-4

其實看見未調整前畫面時,第一反應是移除 Tangible T4 Editor,沒想到移除後,再打開 VS 2017 就出現下面的警告訊息 - [未正確載入套件 'EditorPackage'],打開 EF edmx 檔案,完全看不到 edmx 內容,只好再把 Tangible T4 Editor 安裝回來

[VS] 變更 Tangible T4 Editor 背景顏色-5

星期五, 9月 20, 2019

[SQL] 複合索引效能 - 2

Turning 時發現,某 Table 只有不到 4,000 筆資料,但卻出現異常的 statistics 資訊 (scan count 859,logical read 3554) 且執行計畫上有驚嘆號提示,畫面如下

[SQL] 複合索引效能 - 2

確認後發現是複合索引欄位設定錯誤導致,原本是 [客戶編號 + 物料編號],修正為 [物料編號 + 客戶編號],狀況就解除啦

統計資訊改善前後

改善前改善後
Scan Count8590
Logical Read3,5541,780

星期五, 9月 13, 2019

[VS] 建構子快捷鍵

紀錄 VS 上建構子快捷鍵使用

輸入 ctor 並按兩次 tab 鍵,可以產生無參數建構子

[VS] 建構子快捷鍵-1

結果

[VS] 建構子快捷鍵-2

把 Parent class 修正為有參數建構子並在 Child class 繼承時,要利用 VS 快捷功能產生對應建構子

[VS] 建構子快捷鍵-5

使用 [快速動作與重構] 功能

[VS] 建構子快捷鍵-3

就可以在 Child class 上產生對應 Parant class 的參數建構子

[VS] 建構子快捷鍵-4

星期四, 9月 05, 2019

[EF] RemoveRange - 導覽屬性

[EF] RemoveRange 這篇無意間發現不用在意 Master-Detail 刪除順序,也試試看單筆資料透過導覽屬性來刪除看看,結果就拋出違反 FK Exception 了
DELETE 陳述式與 REFERENCE 條件約束 "FK_StudentGrade_Student" 衝突。衝突發生在資料庫 "School",資料表 "dbo.StudentGrade", column 'StudentID'。
namespace EFIdentity
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SchoolContext context = new SchoolContext())
            {
                var personalData = context.Person.SingleOrDefault(s => s.PersonID == 25);
                // 要注意刪除順序
                context.StudentGrade.RemoveRange(personalData.StudentGrade);
                context.Person.Remove(personalData);

                // 透過 SaveChange() 進行資料刪除
                context.SaveChanges();
            }
        }
    }
}
結論:就不用管 EF DbContext 會不會自行判斷順序,一律先刪除 Detail 再刪除 Master 就對啦