我尝试使用表值参数将包含多列的列表添加到 MSSQL 数据库。
我收到此错误:
'无法将 '...Models.OptionValue' 类型的对象转换为类型 'System.IConvertible'。无法将 <...OptionValue> 存储在 OptionID 列中。预期类型是 Int32。InnerException:InvalidCastException:无法将“...Models.OptionValue”类型的对象转换为类型“System.IConvertible”。
SQL Tvp 表:
CREATE TYPE [dbo].[OptionValueList] AS TABLE(
[OptionID] [int] NULL,
[ValueID] [int] NULL
)
班级:
public class OptionValue
{
public int OptionID { get; set; }
public int ValueID { get; set; }
}
public class OptionListVM
{
public int ProductID { get; set; }
public List<OptionValue> OptionValueLst { get; set; }
}
这是我尝试添加列以便将列表传递给存储过程的地方:
DataTable tvp = new DataTable();
tvp.Columns.Add(new DataColumn("OptionID", typeof(int)));
tvp.Columns.Add(new DataColumn("ValueID", typeof(int)));
foreach (var x in o.OptionValueLst)
tvp.Rows.Add(x); -- error line
我实现了 IConvertable 接口,但它不起作用。我怎样才能解决这个问题 ?
Qyouu
相关分类