2

TSQL および SQL Server 2005 で C# を使用しています

PetaPoco を使用して、データセットをオブジェクトのリストとして返そうとしています。これは私が今使っているコードです

var s = PetaPoco.Sql.Builder.Append("USE [BI] EXEC [dbo].[TestProcedure2];");
            var result =  db.Query<dynamic>(s);

var result2 = db.Query<dynamic>("USE [BI] EXEC [dbo].[TestProcedure2];");

エラー メッセージは、petaPoco が失敗した場合の一般的な sql エラーだと思います。

最初はパラメーターを含むストアド プロシージャを使用していましたが、@ 文字が問題を引き起こしていました。@@ で修正すると、このエラーが発生し始めたので、単純な select ステートメントでストアド プロシージャを作成しました。この手順は、Management Studio で完全に正常に実行されます。

select ステートメントで PetaPoco を使用することは問題なく、データは動的モデルまたはオブジェクト モデルの両方に完全に適切にマップされます。ガベージ SQL 文字列を作成しましたが、同じエラーが返されました。これは、一般的なエラーのアイデアを取得する場所です。

これは私が使用している選択であり、正常に動作します

var dynTest =
                db.Query<dynamic>(
                   "SELECT TOP 10 * FROM [BI].[dbo].[Managers] ORDER  BY [ConsecutiveDays] desc");
4

2 に答える 2

2

その前にselect句を追加しようとしています。
「;」を入れると クエリの開始時には、追加しようとしません。

于 2012-01-30T08:00:47.433 に答える
1

PetaPoco は、SELECT を実行する必要があると想定し、SELECT が含まれていない場合は推論します。自動 SELECT を実行しないようにするには、次を使用する必要があります。

db.EnableAutoSelect = false;

お問い合わせの前に。

于 2012-02-16T11:54:22.667 に答える