2

SP でこの SQL コードを取得しました: (MS SQL 2008)

    DECLARE @type tinyint
    SELECT @type = Type FROM Contents WHERE ContentID = @ContentID    

    SELECT [ParentContentID], [Headline], [ShortDescription], [CategoryID], [Type], [State], [DatePublished], [Name] FROM Contents INNER JOIN Users ON Users.ID = Contents.PublishedBy WHERE ContentID = @ContentID

    IF (@type = 2) -- Content with text
    BEGIN
  SELECT [Preamble], [ContentText], [FaceBook], [Twitter], [PrintPage], [TipAFriend] FROM ContentText WHERE ContentID = @ContentID
    END

    SELECT [ID], [ImagePath], [ImageType] FROM ContentImages WHERE ContentID = @ContentID
    SELECT [ID], [BoxID] FROM ContentBoxes WHERE ContentID = @ContentID

私は賢くあるべきだと思ったので、Linq-to-SQL クラスをプロジェクトに追加し、SP をクラスにドラッグしました。ただし、2 番目、3 番目、4 番目の select ステートメントからデータにアクセスできないようです。私は、Linq-to-SQL クラスが情報を含む 4 つのデータ テーブルを生成し、data[2].Row[0].ImagePath のようにアクセスできるようにすることを望んでいました。

この機能を利用するには、SQL サーバーからコードを取得するために独自のコードを作成する必要がありますか?

4

2 に答える 2

2

LINQ to SQL では、ストアド プロシージャからの複数の結果セットがサポートされています。のドキュメントを参照し、IMultipleResults(デザイナーが生成するものだけに頼るのではなく) データ コンテキスト パーシャルにコードを記述する必要があります。あなたを始めるためのいくつかのリンク:

于 2009-09-20T04:01:23.957 に答える
0

linq-to-sqlは、すぐに使用できる複数の結果セットをサポートしているとは思いません。

現在のプロジェクトで使用しているCodeSmithテンプレートのスイートであるPLINQOは、これを適切に処理します 。PLINQO:複数の結果セットを持つストアドプロシージャ

于 2009-09-19T15:03:36.710 に答える