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 拖到该类中。但是,我似乎无法从第二个、第三个和第四个 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 不支持开箱即用的多个结果集。

PLINQO,一套我正在用于我当前项目的 CodeSmith 模板,可以很好地处理这个问题: PLINQO:具有多个结果集的存储过程

于 2009-09-19T15:03:36.710 回答