在我的LinQ查询中,我必须搜索从H到L的单词。 这是我的代码:
var Artists = context.GetTable<Artist>();
var leftOuterJoinQuery =
from arti in Artists
where arti.Name.StartsWith("H")//to L
var Artists包含来自我的数据库的所有艺术家的表格。
有人知道如何解决这个问题?
答案 0 :(得分:1)
你可以有一个字母列表,然后对其进行过滤 - 例如:
var letters = new[] {"H","I", "J", "K", "L"};
var Artists = context.GetTable<Artist>().Where (a => letters.Any (l => a.Name.StartsWith(l)));
答案 1 :(得分:1)
在SQL中,您可以使用关系运算符(>
,<
等),但C#不接受stringA > stringB
。幸运的是,EF将String.CompareTo
转换为关系运算符,因此您可以这样做:
where arti.Name.CompareTo("H") >= 0 && c.Name.CompareTo("M") < 0)
这将被翻译成
WHERE ([Extent1].[Name] >= 'H') AND ([Extent1].[Name] < 'M')
请注意,它取决于Name
列的数据库归类,是否考虑了区分大小写。