0

私はこのようなものを作ろうとしています:

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

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

「&」付近の構文が正しくありません。

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

SubSonicでそれを行うことは可能ですか?

4

3 に答える 3

0

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

2 番目のエラーは、クエリを実行しているテーブルで論理削除を使用した場合に発生します (テーブルには isDeleted または Deleted 列があります)。

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

于 2009-05-21T03:25:50.637 に答える
0

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

SubSonic が "Type & 1" を見て、有効な SQL パラメータ名ではない @Type&10 と比較するパラメータを作成しています。したがって、元のクエリから次の SQL が得られます。http://code.google.com/p/subsonicproject/にバグを送信する必要があります。

その間、インライン クエリを使用してバグを回避できます。

http://subsonicproject.com/docs/Inline_Query_Tool

于 2009-05-22T09:13:35.677 に答える
-1

あなたが何を達成しようとしているのかについては少し曖昧ですが、ここに最良の推測があります。

int count = new Select().From(tbl.Schema).Where(tbl.TypeColumn).IsEqualTo(true).GetRecordCount(); 
于 2009-05-20T16:35:44.350 に答える