2009-05-26 13 views
1

私はSubSonic RESTHandlerで初めてプレイしています。それはすばらしいことです...興味があるのは1つの気がします。SubSonic RESTHandler Question

RESTHandler.cs(ライン319):

//if this column is a string, by default do a fuzzy search 
if(comp == Comparison.Like || column.IsString) 
{ 
    comp = Comparison.Like; 
    paramValue = String.Concat("%", paramValue, "%"); 
} 

コードのこの小さなblurpは、デフォルトで検索をワイルドカードにして、文字列の列にすべての検索を強制します。これは、パラメータ(_is、_notequalなど)に追加できる優れた比較セットを提供して以来、インテンシブに反するようです。これが行われた理由はありますか? EvalComparisonはデフォルトでは "Comparison.Equals"を使用しています。したがって、likeが明示的に必要とされない限り、 "|| column.IsString"は異なるタイプの比較を使用できなくなるため削除する必要があります。

これはバグよりも機能の詳細です場合、これは

...興味があるだけ...あなたは、コードを変性することなく、「WHEREフィールド= X」を行うことができないため、狂気

私を運転していました

ありがとう!

ザック

答えて

1

これは、DBの場合通常は文字列操作を許可するLIKE操作であるからです。当時の気持ちは、あなたが同等のことを望むなら、あなたはただそれを使うことができるということでした。

私はこのコードに触れて以来、しばらくお待ちしております。あなたがバグを開くのに十分親切であれば、私はそれを見ていきます。

+0

ありがとうございました...これはSubSonic DLでajaxをやっている素晴らしい隠された宝石です。間違いなく数時間私を救った! – Zachary

0

実際には機能のように見えます。ワイルドカードのない列の文字列を検索している場合は、文字列を正確に一致させる必要があります。またはヒットしません。私はこれがプログラミング検索のテキストボックスをより簡単にするために行われたと思われる。