我遇到一种情况,我需要限制用户输入数据库中已存在的 URL。 这是我用来验证的函数:
public bool IsContentUrlExists(string url)
{
url = url.Trim().TrimEnd(new[]{'/'});
return Context.Contents.Any(content => content.Url == url);
}
通过这种方法,我可以验证“/testurl/”这个 URL 是否与数据库中的“/testurl”相匹配。 但否则,当我去比较“/testurl”字符串与数据库中的“/testurl/”时,它将不起作用。
我需要删除这两种情况下的尾部斜杠,但 TrimEnd(new[]{'/'}) 不适用于 EF 查询中的列。所以下面的方法会失败
public bool IsContentUrlExists(string url)
{
url = url.Trim().TrimEnd(new[]{'/'});
return Context.Contents.Any(content => content.Url.Trim().TrimEnd(new[]{'/'}) == url);
}
有人可以帮我提供替代解决方案吗?
注意:我们现有的数据库中没有任何 URL 标准
最佳答案
使用你的代码加上我的代码
public bool IsContentUrlExists(string url)
{
url = url.Trim().TrimEnd(new[]{'/'});
return Context.Contents.Any(content => content.Url == url || content.Url == url + "/");
}
未经测试,但类似上面的东西应该可以工作,不是吗?
翅膀
关于c# - 验证数据库中的 URL 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21135643/