簡體   English   中英

在 ASP.NET 核心 Web ZDB974238714CA8DE634A7CE1DZ08A 中避免與 Linq 的實體重復

[英]Avoid entity duplication with Linq in ASP.NET Core Web API

我想知道在 ASP.NET 核心 Web API 項目中避免實體重復的最佳方法。

想象一下,您有一個帶有名稱和制造商的產品,並且您想確保名稱是否重復。 想象一下,一個帶有名稱的新產品來自客戶端(dto),我們需要查看該名稱(實體)是否已經存在於數據庫中(使用 EF)。

  1. 您需要為 entity 和 dto 中的名稱修剪名稱( name.trim()

  2. 您需要刪除之間的所有空格( string.replace(" ", string.empty())

  3. 您需要將所有內容更改為小寫( string.lower()

  4. 最后你需要比較這兩個

有沒有最佳實踐如何在不編寫所有代碼的情況下做到這一點? 我嘗試將string.compareignorecasecompareoptionsignoresymbols選項以及帶有ignorecase選項的string.equal()一起使用,但 EF 給了我一個警報,它無法翻譯代碼。

br

我對你的方法有一個建議。

  1. 引入另一列(這可以是帶有其他鍵的主鍵)並在向該表插入新記錄時使用修剪和小寫保存名稱。

示例:原始名稱:Amir Masoud Babaei --> 新列值:amirmasoudbabaei

  1. 當您插入新記錄時,進行修剪和小寫更改並將其保存到數據庫中。 因為它是一個主鍵,它應該拋出一個錯誤。

  2. 因此,使用這種方法,您無需遍歷所有名稱並驗證該名稱是否已存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM