我试图从我的ASP.NET核心MVC应用程序端的一个存储过程中获取多个数据表。
但是我想从SQL Server获取三个数据表,但是我做不到,我试着用FromSqlInterpolated
从这个查询中写出API层。但是检索到的数据总是空的,如何创建这个检索对象类呢?我尝试在一个sp_myPersonelSalesOrderInfosList
类中使用三个列表。但列表返回或映射为空。
如何将此SQL命令检索到object?
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
发布于 2021-01-24 16:32:17
如果你出于某种原因需要一个存储过程,在我看来,你可以创建1个select查询,而不是3个。这将是最后一个Select查询,但有一些更改。在此之后,您可以使用Linq获取所需的数据。与返回3个数据集相比,汇总的数据量不会太多,甚至可能更少。在另一种情况下,@Larnu也建议,最好将此存储过程划分为3个存储过程。或者,您可以使用ADO.net和数据读取器。
https://stackoverflow.com/questions/65872459
复制相似问题