Я пытаюсь добавить список с несколькими столбцами в базу данных MSSQL, используя табличные параметры.
Я получаю эту ошибку:
'Невозможно привести объект типа' ... Models.OptionValue 'к типу
'System.IConvertible'. Не удалось сохранить <... OptionValue> в OptionID
Колонна. Ожидаемый тип: Int32. InnerException:
InvalidCastException: невозможно привести объект типа
'... Models.OptionValue' для ввода
'System.IConvertible'.
Sql Tvp table:
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, но он не работает. Как я могу это исправить?