问候
我正试图找到一种方法,使用Linq-to-SQL来获取前15个记录,这些记录的姓氏更高,然后是“Jan”。
当我在SQL中使用它时,我得到的每个成员的姓氏都以字母顺序高于“Jan”的任何字母开头。
然而,使用query.Where(m=>m.LastName > "Jan")
并不会令人遗憾。
任何人都知道如何实现这一目标?
答案 0 :(得分:3)
你可以尝试:
query.Where(m => m.LastName.CompareTo("Jan") > 0)
毕竟,这就是你用正常的C#写的方式。
目前尚不清楚这是LINQ to Objects还是其他一些提供商。如果是LINQ to Objects,则应考虑使用显式StringComparer。例如:
query.Where(m => StringComparer.CurrentCulture.Compare(m.LastName, "Jan") > 0)
这清楚地说明了你想要什么样的比较。如果你正在使用像LINQ to SQL这样的东西,那可能行不通 - 我想你会得到提供商可以处理的任何比较,基本上。
答案 1 :(得分:0)
query.Where(m => m.Substring(0, 3).CompareTo("Jan") > 0);