C#Linq-to-SQL尝试接收多个选择

时间:2009-09-19 13:47:05

标签: c# sql-server linq-to-sql multiple-select

我在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拖到了类中。但是,我似乎无法从第二,第三和第四选择语句访问数据。我希望Linq-to-SQL类能够生成4个带有信息的数据表,这样我就可以访问它们:data [2] .Row [0] .ImagePath。

我是否必须创建自己的代码才能从SQL服务器获取代码才能获得此功能?

2 个答案:

答案 0 :(得分:2)

LINQ to SQL确实支持存储过程的多个结果集。您需要查看IMultipleResults的文档,并且需要在数据上下文中编写一些代码(而不是仅仅依赖于设计器生成的内容)。一些链接让你开始:

答案 1 :(得分:0)

我认为linq-to-sql不支持开箱即用的多个结果集。

PLINQO,我用于当前项目的一套CodeSmith模板,处理得很好: PLINQO: Stored Procedures with multiple result sets