【发布时间】:2022-01-04 01:04:53
【问题描述】:
我想知道在 ASP.NET Core Web API 项目中避免实体重复的最佳方法。
假设您有一个带有名称和制造商的产品,并且您想确保名称是否重复。想象一下,一个带有名字的新产品来自客户端(dto),我们需要查看这个名字(实体)是否已经存在于数据库中(使用 EF)。
-
您需要修剪实体名称和 dto 名称的名称 (
name.trim()) -
您需要删除中间的所有空格 (
string.replace(" ", string.empty()) -
您需要将所有内容更改为小写 (
string.lower()) -
最后你需要比较这两个
是否有任何最佳实践可以在不编写所有代码的情况下做到这一点?我尝试将string.compare 与compareoptions 一起使用,如ignorecase 和ignoresymbols 以及string.equal() 与ignorecase 选项,但EF 给我一个警报,它无法翻译代码。
br
【问题讨论】:
-
基本上,您的比较方案没有内置方法。您需要为您的需求编写业务逻辑,例如为字符串编写扩展方法。
-
@TinyWang:编写扩展方法是一个很好的方案,但我总是收到来自 EF 的错误,说它无法翻译。
-
分享你的代码 sn-p 和错误信息?
标签: entity-framework linq asp.net-core-webapi