2009-05-20 17 views
0

私はこのような何かを作るしようとしているところで、ビット操作:亜音速 - 箇条

int count = new Select().From(tblSchema).Where("Type & 1").IsEqualTo("1").GetRecordCount(); 

、エラーメッセージは次のとおりです。「&」

付近に正しくない構文。

スカラー変数 "@Deleted"を宣言する必要があります。

これはSubSonicで可能ですか?

+0

あなたが書き出し追加することができます達成しようとしているものは非常に明確ではありません:あなたは、インラインクエリを使用することにより、一方あなたは今のバグを回避することができますhttp://code.google.com/p/subsonicproject/

にバグを提出しなければなりませんあなたがSubSonicが生成するようにするSQL文 –

+0

私はselect count(*)と推測するつもりですtype&1 – rball

答えて

-1

あなたが達成しようとしているものは少しばかりですが、ここでは最高の推測です。

int count = new Select().From(tbl.Schema).Where(tbl.TypeColumn).IsEqualTo(true).GetRecordCount(); 
0

2番目のエラーは、あなたが照会されているテーブルの上に論理削除を使用することによって引き起こされることでしょう

スカラー変数 「@Deleted」を宣言する必要があります(表には、isDeletedまたは削除された列を持っています)。

しかし、私はコードを見ていますが、どのようにそのパラメータがそこに入っているのか分かりません。 SqlQuery.GetRecordCountメソッドは、私が知ることができるものからCheckLogicalDelete()を呼び出しません。そのエラーメッセージは無関係ですか?

0

これは、実行するSQLを生成する際にSubSonicがパラメータの名前を付ける方法のバグです。

SubSonicが "Type & 1"を探していて、有効なSQLパラメータ名ではない@Type &と呼ばれるものと比較するパラメータを作成しています。したがって、元のクエリから次のSQLを取得します。

http://subsonicproject.com/docs/Inline_Query_Tool