c# - 验证数据库中的 URL 是否存在

标签 c# entity-framework linq-to-entities

我遇到一种情况,我需要限制用户输入数据库中已存在的 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/

相关文章:

c# - imageresizer.net性能基准

mysql - 如果存在文字,则会生成不同的查询

.net - 如何使用部分类扩展 ADO.NET Entity Framework 对象?

wpf - 使用 XAML 基于另一个 ComboBox 填充 ComboBox

LINQ 在 bigint 上抛出无效的强制转换异常

c# - 如何迭代列表框选定的项目并获取 ValueMember 和 Display Member

c# - 如何制作循环而不是 switch 语句?

c# - 在WPF C#中使用NAudio录制音频

asp.net-mvc - 通过使用 EF 4.1 DBContext 为 SaveChanges 分配事件处理程序来实现 OnContextCreated 以进行审计

c# - Entity Framework ,根据包含从相关表中获取元素