私は大きな助けを必要としています。私は今これをやろうとしています。LINQが(SQL)LIKE範囲検索を実行する方法
だから私は、このクエリがあります
Select name from BlaBlaBla
order by
case when name like '9%' then 1 end,
case when name like '8%' then 1 end,
case when name like '7%' then 1 end,
case when name like '6%' then 1 end,
case when name like '5%' then 1 end,
case when name like '4%' then 1 end,
case when name like '3%' then 1 end,
case when name like '2%' then 1 end,
case when name like '1%' then 1 end,
case when name like '0%' then 1 end,
name
をそして、私はそれがOrderTypeフィルターとなりますので、ドメインのプロジェクトに、私のソリューションでは、新しいC#、Asp.Net、クラスでそれを実装したいです
var param = Expression.Parameter(typeof(T), "item");
var paramName = Expression.Property(param, "Name");
var regexMatch = Expression.Constant("^[0-9]");
var startsWithDigit = Expression.Call(typeof(Regex), "IsMatch",
null, paramName);
var lambda = Expression.Lambda<Func<T, bool>>(startsWithDigit,
param);
return namesList.OrderBy(lambda)
.ThenBy(BlaBla1())
.ThenByDescending(BlaBla2())
.ThenByDescending(BlaBla3())
.ThenBy(BlaBla4());
しかし、それは、その式は「IsMatch」メソッドが含まれていない私に語った:、いくつかの機能のために...のための
は今、私はこれを持っています。
私を助けてもらえますか? ありがとうございました!
LINQをサポートしているORMで作業しているようです。どちらですか?また、なぜLINQ構文を使用する代わりに手動で式を構築していますか? –
ORMまたはメモリを使用してこの順序をデータベースで実行しますか? –
ここで使用されているORMはLinq to Sql –