c# - LINQ to SQL 查询以确定值是否以数字开头

标签 c# .net linq-to-sql

我有一个项目,我通过第一个字母查询用户:

repository.GetAll().Where(q => q.BrukerIdent.StartsWith(letter.ToString())).ToList();

..哪里repository.GetAll()返回 IQueryable<Bruker> , BrukerIdent是一个包含用户名的字符串,letter是一个字符值。这非常有效,除了我还想获得以数字开头的用户。而且我不想按单独的数字排序。

我的大脑在呼喊 StartsWith("\d")但据我所知,这种方式行不通。我也想过做一个 10-way OR 子句,但这看起来像意大利面条,而且我不确定效率。

有什么“正确”的方法可以做到这一点吗?

最佳答案

如果这是针对 LINQ-to-SQL 的,您可以使用 SqlMethods.Like方法在这里:

var result = repository
    .GetAll()
    .Where(q => SqlMethods.Like(q.BrukerIdent, "[0-9]%"))
    .ToList();

关于c# - LINQ to SQL 查询以确定值是否以数字开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702168/

相关文章:

使用 LinqToSql 的 Winforms 应用程序架构

c# - 使用 LINQ 比较查询中的日期

c# - IO 异常 : directory name is invalid using directory from File System Watcher OnChanged Event

c# - GC 时间百分比高的原因是什么?对于我们在 APM perfmonitor 工具中的应用程序池,我们看到它超过 99% 并保持数小时

.net - 合并两个图像,其中一个是透明的

Java 支持 WS-Fed 与 SAML 作为登录协议(protocol)

c# - c# 应用程序会在 linux 操作系统上运行吗

c# - 是否可以将接口(interface)作为松散耦合的参数

c# - StructureMap,使用容器或对象工厂配置?

c# - 使用 LINQ-to-SQL 合并两个表的内容