DataTable с полем byte [] в качестве параметра хранимой процедуры

мы повторно использовали этот метод использования DataTable в качестве параметра хранимой процедуры, и это 'работает отлично. Это упрощенный рабочий код:

using (dbEntities dbe = new dbEntities())
{
    var dt = new dataTable();
    dt.Columns.Add("ID");
    dt.Columns.Add("Message");
    dt.Columns.Add("CreatedOn", typeof(DateTime));

    foreach (var row in randomDataSource)
    {
        dt.Rows.Add(
            row.id,
            row.message,
            DateTime.Now
            );
    }

    var tableType = new SqlParameter("tableType", SqlDbType.Structured);
    tableType.Value = dt;
    tableType.TypeName = "[dbo].[RandomTableType]";

    dbe.ExecuteStoreCommand(
        "EXEC [dbo].[SaveTable] @tableType",
        new object[] { tableType }
        );
}

Проблема возникает, когда поле, которое я хочу добавить, имеет двоичный тип. т.е .:

dt.Columns.Add("BinaryMessage", typeof(byte[]));

Соответствующий столбец в базе данныхvarbinary(MAX) Кстати. Когда я пытаюсь запустить это, я получаю эту ошибку:

Неявное преобразование из типа данных nvarchar (max) в varbinary (max) не допускается. Используйте функцию CONVERT, чтобы выполнить этот запрос.

Как мне изменить то, что я должен сделать, чтобы это работало?

Ответы на вопрос(1)

Ваш ответ на вопрос