2

C# オブジェクトを構築するために、SQL Server からいくつかのレコード セットを返す必要があります。EF は現在 (おそらくベータ版) このような複雑なオブジェクトを返すことをサポートしていませんが、快適な C# 表現に変換する前に、ADO.NET を使用して DataSet を返してデータを取得する必要があります。以下を参照してください。

SELECT * FROM ...
exec dbo.usp_SP1 @ProductID,@CatalogName
exec dbo.usp_SP2 @ProductID,@CatalogName    

データベース呼び出しを少なくすることは常に良いことですが、このクエリがどのように実行されているかにより、各 DataSet に対して複数のリクエストを行うことは最悪でしょうか?

4

2 に答える 2

0

1 回のデータベース ラウンドトリップは、常に 3 回 (または 2 回) よりも優れています。

この一連のクエリを使用しても、コードはクリーンである可能性があります。DataTable.Loadから 3 つの結果セットすべてをロードするには、3 回連続して呼び出す必要がありDbDataReaderます。

そうです、1 つの大きなクエリと、DataSetすべての結果セットに対して 1 つのクエリをお勧めします。

于 2012-07-06T14:02:17.087 に答える
-1

内の各テーブルの結果を参照できますdatasetds.Tables[index].Rows.... したがって、1 つの呼び出しを行い、すべてのデータを取得して、別の sproc を呼び出すか単純なSELECT.

于 2012-07-06T14:07:59.220 に答える