0

使用 SQL Server 2005 我运行了这样的查询

SELECT * 
FROM mytable 
WHERE (LEFT (title, 1) BETWEEN @PREFIXFROM AND @PREFIXTO)

我用它来做字母过滤,例如

PREFIXFROM = a
PREFIXTO = c 

我得到了 mytable 中 a 和 c 之间的所有项目(包括)

我如何在 linq 中执行此操作?

选择所有记录都很好.. 但是 1)如何执行“LEFT”操作和 2)如何使用非数字字段执行 <= 类型运算符?

任何想法表示赞赏!

4

1 回答 1

3

不要想 SQL - 想一想您想要实现的目标,以及您将如何在 .NET 中实现它。所以你试图得到第一个字符,并确定它是否在 'a' 和 'c' 之间:

var query = from row in mytable
            where row.title[0] >= 'a' && row.title[0] <= 'c'
            select row;

或以点表示法:

var query = mytable.Where(row => row.title[0] >= 'a' && row.title[0] <= 'c');

或者:

var query = mytable.Where(row => row.title.Substring(0, 1).CompareTo("a") >= 0 &&
                                 row.title.Substring(0, 1).CompareTo("c") <= 0));
于 2009-11-03T14:38:26.327 回答