不明な量のデータを返す SP があります。クエリの例を次に示します。
マイSP:
WHILE (@counter <= @SomeParameter)
BEGIN
Select *
From tblFoo
Where tblFoo.Counter=@counter
@counter=@counter+1
END
データを効率的に保存するために、 DataSet を使用したいと思います。これは、各 Select の結果をそれぞれの DataTable に保存します。
私のアプリケーションは EF 5 に基づいているため、dbContext
オブジェクトを使用して SP を呼び出そうとしました。これが私がやろうとしたことです。
var ds=db.Database.SqlQuery<DataSet>("MySP @counter @SomeParameter", value1,value2);
それは適切に機能していないようです。
この問題を解決するために従来のADO.NET を使用することを考えSqlDataAdapter
ました。dbContext
SqlDataAdapter
注: この問題で Entities Collection ではなく DataSet を使用している理由は、SP から取得した結果が異なる列を持つ可能性があるため、Entities Collection が機能するかどうかわからないためです。
Entities (または SqlAdapter) を使用して SP を呼び出し、DataSet の各テーブルに SP からの各 Select の結果を入力する方法を知りたいです。
私は EF を始めたばかりなので、何か間違ったことを考えたり実行したりしている場合は、ヒントをいただければ幸いです。