DataTable z polem byte [] jako parametrem procedury składowanej
Korzystałem z tej metody używania DataTable jako parametru procedury składowanej i działała ona świetnie. Oto uproszczony kod roboczy:
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 }
);
}
Problem pojawia się, gdy pole, które chcę dodać, jest typu binarnego. to znaczy.:
dt.Columns.Add("BinaryMessage", typeof(byte[]));
Odpowiednia kolumna w bazie danych tovarbinary(MAX)
tak poza tym. Gdy próbuję to uruchomić, pojawia się ten błąd:
Niejawna konwersja z typu danych nvarchar (max) na varbinary (max) jest niedozwolona. Użyj funkcji KONWERTUJ, aby uruchomić to zapytanie.
Jak zmodyfikować, co mam zrobić, aby to działało?