我正在使用实体框架,并且遇到了对某些扩展缺乏支持的问题。
我有 2 个键(均为 char)fromKey
,toKey
并且正在寻找构建一个Where
语句,该语句将搜索 的列表Stores
,并选择第一个字母在和Store.Name
之间的位置。fromKey
toKey
string[0]
不工作,Substring
不工作 - 有人知道如何解决这个问题吗?
子字符串方法的代码:
public static IQueryable<Store> FindActiveByName()
{
var r = new ReadRepo<Store>(Local.Items.Uow.Context);
Tuple<string, string> range = Tuple.Create("0", "9");
return r.Find().Where(s => range.Item1 <= s.Name.Substring(0, 1) &&
s.Name.Substring(0, 1) <= range.Item2);
}
给我一个错误:
运算符 <= 不能应用于字符串
更新
Anwser 由 nemesV 提供
public static IQueryable<Store> FindActiveByName()
{
Tuple<char, char> range = Tuple.Create('R', 'S');
var r = new ReadRepo<Store>(Local.Items.Uow.Context);
var keys = Enumerable
.Range(range.Item1, (int)range.Item2 - (int)range.Item1 + 1)
.Select(k => ((char)k).ToString());
return r.Find(s => keys.Contains(s.Name.Substring(0, 1)));
}