【发布时间】:2021-03-16 06:45:38
【问题描述】:
我有执行存储过程的代码:
var result = await DbContext.Database.ExecuteSqlRawAsync(
"Get_FlightBooking @BookingReferenceNumber, @BM_BKDTFOM, @BM_BKDTTO, @User_Id",
new SqlParameter("@BookingReferenceNumber", model.BookingId == string.Empty ? null : model.BookingId),
new SqlParameter("@BM_BKDTFOM", model.FromDt == string.Empty ? null : model.FromDt),
new SqlParameter("@BM_BKDTTO", model.FromDt == string.Empty ? null : model.FromDt),
new SqlParameter("@User_Id", model.UserId));
这是存储过程:
ALTER Proc [dbo].[Get_FlightBooking]
(
@BookingReferenceNumber VARCHAR(50)=NULL,
@BM_BKDTFOM VARCHAR(50)=NULL,
@BM_BKDTTO VARCHAR(50)=NULL,
@User_Id bigint=null
)
as
begin
SELECT distinct BookingID,
BookingReferenceNumber,
Sector,
AirlineCode,
AirlineName,
FROM dbo.Flights AS fb
WHERE (fb.BookingReferenceNumber=@BookingReferenceNumber OR @BookingReferenceNumber IS NULL)
AND((CAST(fb.BookingDate AS DATE)>= CAST(@BM_BKDTFOM AS DATE) OR @BM_BKDTFOM IS NULL) AND (CAST(fb.BookingDate AS DATE)<=CAST(@BM_BKDTTO AS DATE) OR @BM_BKDTTO IS NULL))
AND (fb.UserId=@User_Id or @User_Id=1)
END
是否有人发现存储过程的执行方式有问题?调用 C# 代码时出现此错误:
参数化查询'(@BookingReferenceNumber nvarchar(4000),@BM_BKDTFOM nvarchar(400' 需要参数 '@BookingReferenceNumber',未提供。
知道什么是错的吗?
【问题讨论】:
标签: c# entity-framework linq entity-framework-core dbcontext