Entity Framework を使用していますが、特定の拡張機能がサポートされていないという問題に遭遇しました。
私は 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);
}
エラーが表示されます:
演算子 <= は文字列に適用できません
アップデート
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)));
}