使用Entity Framework中的多个TVP(表值参数)调用存储过程

时间:2016-07-18 05:47:24

标签: c# sql-server entity-framework table-valued-parameters

我有一个存储过程PageInfo struct { TotalResults int `json:"totalResults"` ResultsPerPage int `json:"resultsPerPage"` } `json:"pageInfo"` ,其中包含两个TVP InsertData& MessagesTVP

当我使用EF调用它时,在任何给定的时间点,我只想传递一个参数。

我通过时工作正常

ExceptionTVP

但同样是失败而错误

  

操作数类型冲突:ExceptionTVP与MessageTVP不兼容

当我通过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); 时:

ExceptionTVP

这就是SQL Server中定义存储过程的方法:

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);

有人可以帮忙吗?

0 个答案:

没有答案