我正在使用Winforms应用程序,并尝试更新我的员工详细信息表单,该表单将调用存储过程来更新employee表。.我正在以数据库优先的方式使用Entity Framework。
提交表单时,后端表中的数据已更新,但是我的应用程序抛出以下错误。
数据读取器与指定的“ dbModel.stored_procedure_Result”不兼容。类型“ ErrorNumber”的成员在数据读取器中没有具有相同名称的对应列。
代码:
public partial class stored_procedure_Result
{
public Nullable<int> ErrorNumber { get; set; }
public Nullable<int> ErrorSeverity { get; set; }
}
ALTER PROCEDURE sp_UpdateEmp
@EmpId INT,
@City VARCHAR(50),
@Age INT
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION EMPUPDATE;
Update tblEmployee
set City = @City
where EmployeeId = @EmpId
EXEC storedProdAgeCalc @EmpId,@Age
COMMIT TRANSACTION EMPUPDATE;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION EMPUPDATE;
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity
END CATCH;
END
用于调用存储过程的C#代码:
EMPDB.sp_UpdateEmp(123, 'TEST', 25);
我想知道为什么我的局部类具有ErrorNumber,ErrorSeverity字段,据我了解,它应该具有EmpID,City,Age。
我尝试从edmx中删除存储过程,然后再次添加,但是没有运气。
对此有任何帮助吗?