在模型中,有一個 Fluent API 比數據注釋更適合用于驗證。然后我們還有 FluentValidation。如果我們有 Fluent API,我們還需要 FluentValidation 嗎?或者 Fluent API 僅適用于模型,而 FluentValidation 適用于其他一切?
1 回答

牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
FluentValidation 是用于驗證規則的框架。雖然簡單的驗證規則可以是例如:文本長度為 100 個字符或者它是必填字段,但在大多數業務情況下,規則要復雜得多,并且可以以易于讀/寫的方式定義它們。
Fluent API 是實體框架擴展,它支持易于讀/寫的實體框架,用于將數據庫等數據源映射到 C# 數據傳輸對象類。DTO 中沒有業務邏輯,它們被轉換為有業務邏輯的模型。
部分問題是您將驗證放在哪里?假設您的應用程序分為客戶端、服務器端、微服務、數據庫。應該是其中之一、全部還是介于兩者之間,簡短的回答是——是的。
您應該有數據庫規則,以防止存儲無效狀態。同時數據庫調用成本高昂且耗時。將所有業務規則添加到數據庫及其約束、設置觸發器等稱為數據庫優先架構。雖然這是可能的,但通常可以設置一個 80-98% 的時間命中的緩存??蛻舳蓑炞C的普遍問題是它可以被繞過,以及其他多種原因。
簡而言之 - 每個驗證解決方案或如何抽象應用程序都存在限制。開發人員通常嘗試以最小的努力編寫干凈的代碼,并且通常要求他們添加測試,并且通常他們不編寫架構或數據庫集成測試,因此他們向模型添加業務邏輯并為其編寫測試。
此外,Fluent 驗證用于模型驗證,Fluent api 用于數據源訪問。
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消