首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从存储过程中检索多个关系数据对象

从存储过程中检索多个关系数据对象
EN

Stack Overflow用户
提问于 2021-01-24 15:31:58
回答 1查看 63关注 0票数 0

我试图从我的ASP.NET核心MVC应用程序端的一个存储过程中获取多个数据表。

但是我想从SQL Server获取三个数据表,但是我做不到,我试着用FromSqlInterpolated从这个查询中写出API层。但是检索到的数据总是空的,如何创建这个检索对象类呢?我尝试在一个sp_myPersonelSalesOrderInfosList类中使用三个列表。但列表返回或映射为空。

如何将此SQL命令检索到object?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_myPersonalSalesOrderInfosList] 
     @OrderNumber NVARCHAR(50)
AS
BEGIN
    SET NOCOUNT ON;

    --Dt 1 
    SELECT TOP 1 
        OrderNumber,
        PLAN_AMOUNT Planamount,
        ID MppId
    FROM 
        PRODUCT_PLAN
    WHERE 
        OrderNumber LIKE '%' + @OrderNumber + ''
        AND isDeleted = 0;

    --dt2 
    SELECT 
        p.OrderNumber,  
        p.PLAN_AMOUNT Planamount,
        p.ID MppId,
        p.ProcessNo OpNo,
        m.MACHINE_CODE + '-' + m.MACHINE_NAME MachineInfo
    FROM
        PRODUCT_PLAN p
    JOIN 
        MACHINES m ON m.ID = p.MACHINE_ID
    WHERE 
        OrderNumber LIKE '%' + @OrderNumber + ''
        AND isDeleted = 0;

    --dt 3 
    SELECT 
        p.ID MppId,
        d.ID MppdId,
        d.PRODUCTION_AMOUNT ProductAmount
    FROM 
        PRODUCT_PLAN_DETAIL d
    JOIN 
        PRODUCT_PLAN p ON p.ID = d.MPP_ID
    WHERE 
        OrderNumber LIKE '%' + @OrderNumber + ''
        AND p.isDeleted = 0
        AND d.PRODUCTION_AMOUNT > 0;
END
EN

回答 1

Stack Overflow用户

发布于 2021-01-24 16:32:17

如果你出于某种原因需要一个存储过程,在我看来,你可以创建1个select查询,而不是3个。这将是最后一个Select查询,但有一些更改。在此之后,您可以使用Linq获取所需的数据。与返回3个数据集相比,汇总的数据量不会太多,甚至可能更少。在另一种情况下,@Larnu也建议,最好将此存储过程划分为3个存储过程。或者,您可以使用ADO.net和数据读取器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65872459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文