社内SQLジェネレータを拡張しています。ブール値に対するWHERE述語のブール値比較
このジェネレータはC#で設計されており、LinqクエリからSQLクエリを作成する機能を追加しています。 Linqクエリは、「定数」式(すなわち、SQL生成の前に真/偽/等となる式)を有することができる。例を与えることを
、のようなLINQクエリ:私は実際のブール値を使用していますので、これはSQLに失敗し
SELECT Property FROM ParentObject WHERE true AND Property = OuterProperty
:
var OuterProperty = *something*;
ParentObject.Where(
element =>
OuterProperty != null && element.Property == OuterProperty
)
は次のように煮詰めることができますここで述語。
私の質問は、 このようにブール値のような定数値を使用することはできますか?
では、次のスニペットを試すことができ、これをテストするには:これはあなたの次のエラーを与える
select 1 where IIF(true,1,0) = 1
:
An expression of non-boolean type specified in a context where a condition is expected, near '('.
。 –
私は '1 = 1'のようなものを使用しました –