1 回答

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