【发布时间】:2016-11-04 15:27:13
【问题描述】:
我有一个表格,我将名字保存在 Firstname , Lastname 模式中
但当用户输入此值时,名称之间的空格可能不规则 那么如何使用 Linq 检查列值是否唯一
string name_input = "a , b";
if (context.TableRankHolders.Any(q => q.Name == name_input))
{
//name exists
}
我想要做的是将输入字符串格式化为严格的“a,b”模式,方法是删除逗号前后所有不需要的空格,如示例中所示
在数据库中,名称值采用不同的格式,例如逗号之间可能没有空格或逗号之间有更多空格,例如“a,b”/“a,b”/“a,b”/“a,b”等 现在检查使用 LINQ 查询,但是我如何格式化名称以根据列中的逗号进行拆分
唯一的共同点就是必须有,现在,我猜方法就像 拆分,并检查第 0 部分和第 1 部分是否存在于 db 中以获取单行
【问题讨论】:
-
formatted_name中的值是多少 -
请参阅说明中的编辑
-
我不知道您的上下文,但将名字 + 姓氏作为唯一字段似乎并不常见。两个人可能很容易被同名。也就是说,我会亲自删除所有空格并比较有一些字符、逗号和更多字符。你永远不知道用户会输入什么。
-
@msanz 是的,你是对的,这样做的目的是防止再次错误地输入同一个人的详细信息。如果存在相同的名称,客户端将对名称进行一些调整,例如 Jr 或 Sr 等以使其唯一。
-
@msanz 单独的字段将仅cause more problems。我会完全停止请求
<firstname>, <lastname>,让他们随意输入他们的名字。