I have a stored procedure InsertData
with two TVP MessagesTVP
& ExceptionTVP
.
When I called it using EF, at any given point of time, I want to pass just one parameter.
It is working fine when I am passing
SqlParameter _dataTypeParam = new SqlParameter("MessageTVP", SqlDbType.Structured);
DataTable _InsertTMessageTVPDatatable = new DataTable("MessageTVP");
_dataTypeParam.Value = _InsertTMessageTVPDatatable;
_dataTypeParam.TypeName = "dbo.MessageTVP";
var obj = dbContext.Database.ExecuteSqlCommand($"InsertData @MessageTVP", _dataTypeParam);
But same is failing with error
Operand type clash: ExceptionTVP is incompatible with MessageTVP
when I am passing just ExceptionTVP
:
SqlParameter _dataTypeParam = new SqlParameter("ExceptionTVP", SqlDbType.Structured);
DataTable _InsertTExceptionTVPDatatable = new DataTable("ExceptionTVP");
_dataTypeParam.Value = _InsertTExceptionTVPDatatable;
_dataTypeParam.TypeName = "dbo.ExceptionTVP";
var obj = dbContext.Database.ExecuteSqlCommand($"InsertData @ExceptionTVP", _dataTypeParam);
This is how stored procedure is defined in SQL Server:
CREATE PROCEDURE [dbo].[InsertTelemetryData]
@MessageTVP AS MessageTVP READONLY,
@ExceptionTVP AS ExceptionTVP READONLY
Can anyone help?