Не удается решить исключение времени выполнения с помощью entity framework
Hello everyone, I am working on a project that uses EF to do crud operations against the database I'm working with. I created several stored procedures to do the insert, update and delete operations because I am doing two things, I'm adding a record to an audit table and i'm performing the crud operation itself. My problem is that during execution of the code I get a run time exception that I haven't found an answer for online. The Error occurs inside the Context class generated by EF. <pre>return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<DeleteEDeliveryScheduledEvent_Result>("DeleteEDeliveryScheduledEvent", eventIdParameter, modifiedByParameter);
Ошибка заключается в следующем:
Цитата:Системы.Данных.Лица.Ядро.EntityCommandExecutionException
Значение HRESULT=0x8013193C
Message=средство чтения данных несовместимо с указанной моделью AgentPortalModel.DeleteEDeliveryScheduledEvent_Result'. Член типа "ErrorNumber" не имеет соответствующего столбца в считывателе данных с тем же именем.
моя стандартная хранимая процедура удаления имеет следующую структуру:
CREATE PROCEDURE [dbo].[DeleteEDeliveryScheduledEvent] @EventId INT = NULL, @ModifiedBy int AS SET NOCOUNT ON; IF @EventId IS NOT NULL BEGIN TRANSACTION BEGIN TRY INSERT INTO EDeliveryAudit (TableName, ActionId, RowXml, ModifiedBy, ModifiedDate) VALUES ('EDeliveryScheduledEvents', 3, (SELECT EventId, EventDateTime FROM EDeliveryScheduledEvents WHERE EventId = @EventId FOR XML RAW ('ScheduledEvent'), ROOT ('ScheduledEvents'), ELEMENTS ), @ModifiedBy, GETDATE()) DELETE FROM EDeliveryScheduledEvents WHERE EventId = @EventId END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage; IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION END CATCH IF @@TRANCOUNT > 0 COMMIT TRANSACTION
Что я уже пробовал:
Я попытался с помощью параметров.
Я пробовал использовать ObjectContext для прямого вызова функции EF
Bryian Tan
ошибка заключается в том, что "ErrorNumber" не является свойством объекта DeleteEDeliveryScheduledEvent_Result / table / entity. Вы это подтвердили?
Member 11331145
ErrorNumber не является частью моей таблицы и не должен быть частью выходных данных. единственная часть, где у меня есть ErrorNumber, находится внутри хранимой процедуры в предложении catch, где я откатываю транзакцию, если возникает ошибка.