2011-07-29 16 views
6

Dapperを使用してSQLデータをマップしていますが、これまでのところうまくいきました。これは私が返すデータを呼んでいるストアド・プロシージャとして偉大な限り作品Dapper処理が空の結果セットを返しました

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single(); 

:我々はに似た何かをやっているところかかわらず、私はケースを持っています。ストアドプロシージャが結果を返しておらず、outパラメータにエラーを返すことがあります。 Dapperのは、エラーをスローするので これは、Dapperの中に問題を引き起こすようだ:

があり、「マルチマッピングAPIを使用する場合、あなたがID以外のキーを持っている場合はsplitOnのPARAMを設定し確実」空の結果が返された場合、またはこれがDapperの制限である場合に、適切に処理できるようにクエリを書く方法?

+1

であることを確認する必要がありますディスカッション:http://code.google.com/p/dapper-dot-net/issues/detail?id=57 – TodK

+0

この質問に遭遇する可能性のある人には、[この回答](http:// stackoverflow。 com/questions/11720611/how-to-return-null-from-a-dapp er-query-with-defaultt)が役立ちます。 –

答えて

1

SingleOrDefault()がここ

あなたの友人である、これを試してみてください:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault(); 
if (someObject != null) 
{ 
    // operate on your results here 
} 
return someObject; 

もよろしいTが、私はさらにこの上でGoogleのコードに問題を開いたNullable

+0

SPROCがのリストを返す可能性がある場合、SingleOrDefaultは例外をスローします。その場合、FirstOrDefaultを使用するのが最善です。 Dapperのドキュメントを参照してください:http://dapper-tutorial.net/querysingleordefault – maurocam

関連する問題