在 VS 2017 上學習 EF edmx 時有注意到會安裝 Tangible T4 Editor 來使用,安裝後打開 edmx 才發現不妙,因為 VS 是使用黑色背景,所以一整個眼花撩亂,Orz
安裝 Tangible T4 Editor 後未調整前畫面
VS 內調整 Tangible T4 Editor 的背景顏色
自定背景顏色為 [紅 60]、[綠 60]、[藍 60]
調整後的 Tangible T4 Editor 畫面
其實看見未調整前畫面時,第一反應是移除 Tangible T4 Editor,沒想到移除後,再打開 VS 2017 就出現下面的警告訊息 - [未正確載入套件 'EditorPackage'],打開 EF edmx 檔案,完全看不到 edmx 內容,只好再把 Tangible T4 Editor 安裝回來
星期日, 9月 22, 2019
星期五, 9月 20, 2019
[SQL] 複合索引效能 - 2
Turning 時發現,某 Table 只有不到 4,000 筆資料,但卻出現異常的 statistics 資訊 (scan count 859,logical read 3554) 且執行計畫上有驚嘆號提示,畫面如下
確認後發現是複合索引欄位設定錯誤導致,原本是 [客戶編號 + 物料編號],修正為 [物料編號 + 客戶編號],狀況就解除啦
統計資訊改善前後
確認後發現是複合索引欄位設定錯誤導致,原本是 [客戶編號 + 物料編號],修正為 [物料編號 + 客戶編號],狀況就解除啦
統計資訊改善前後
改善前 | 改善後 | |
---|---|---|
Scan Count | 859 | 0 |
Logical Read | 3,554 | 1,780 |
- 延伸閱讀
- [SQL] 複合索引效能
星期五, 9月 13, 2019
[VS] 建構子快捷鍵
紀錄 VS 上建構子快捷鍵使用
輸入 ctor 並按兩次 tab 鍵,可以產生無參數建構子
結果
把 Parent class 修正為有參數建構子並在 Child class 繼承時,要利用 VS 快捷功能產生對應建構子
使用 [快速動作與重構] 功能
就可以在 Child class 上產生對應 Parant class 的參數建構子
輸入 ctor 並按兩次 tab 鍵,可以產生無參數建構子
結果
把 Parent class 修正為有參數建構子並在 Child class 繼承時,要利用 VS 快捷功能產生對應建構子
使用 [快速動作與重構] 功能
就可以在 Child class 上產生對應 Parant class 的參數建構子
星期四, 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 就對啦