gpt4 book ai didi

c# - 尝试使用 Entity Framework 核心执行更新存储过程时出错

转载 作者:行者123 更新时间:2023-11-30 14:47:42 26 4
gpt4 key购买 nike

我正在尝试在 ASP.Net Core 应用程序中运行以下命令。

await _context.Database.ExecuteSqlCommandAsync(
"EXEC AdmissionConsultEndCurrentAndPending @PracticeId @UserId @AdmissionId",
parameters: new[] { AdmissionId, assignments.UserId, assignments.PracticeId });

我也尝试过使用这些组合的实际命令

EXEC AdmissionConsultEndCurrentAndPending @PracticeId, @UserId, @AdmissionId
AdmissionConsultEndCurrentAndPending, @PracticeId, @UserId, @AdmissionId

传递的三个值是三个整数。如果重要的是存储过程

ALTER PROCEDURE [dbo].[AdmissionConsultEndCurrentAndPending]
@AdmissionId INT,
@UserId INT,
@PracticeId INT
AS
BEGIN
SET NOCOUNT ON;

UPDATE
AdmissionConsults
SET
CurrentConsult = 0
WHERE
AdmissionId = @AdmissionId AND
PracticeId = @PracticeId AND
CurrentConsult = 1
END

虽然我运行此命令时出现以下错误:找不到 CLR 类型“Int32[]”到关系类型的映射。

我不确定这个错误是指我作为参数传递的 int 值,还是因为它是一个更新查询,它试图为受影响的行数返回一个 int 值。无论哪种方式,我都还没有让它工作。

最佳答案

这里有一个方法应该能满足你的要求:

var parameters = new List<SqlParameter>
{
new SqlParameter("@PracticeId", assignmentsPracticeId),
new SqlParameter("@UserId", assignmentsUserId),
new SqlParameter("@AdmissionId", AdmissionId)
};
await _context.Database.ExecuteSqlCommandAsync(
"EXEC AdmissionConsultEndCurrentAndPending @PracticeId, @UserId, @AdmissionId",
parameters.ToArray());

关于c# - 尝试使用 Entity Framework 核心执行更新存储过程时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43793582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com