亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Fluent API 與 FluentValidation

Fluent API 與 FluentValidation

C#
千萬里不及你 2023-07-09 15:09:44
在模型中,有一個 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 用于數據源訪問。


查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 116 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號