@Hoobert

BLToolkit и Oraсle BLOB?

Не могу разобраться как вставить в поле типа BLOB строку с помощью BLToolkit. На официальном сайте такого примера не нашлось, да и в интернете тоже. При вставке вылетает ошибка:

ORA-01461: допускается привязка LONG значения только для занесения в столбец LONG



В базе лежит такая таблица:
CREATE TABLE "MF_WORKSPACE_THUMBNAILS" (
  "WORKSPACE_ID" NUMBER NOT NULL,
  "THUMBNAIL" BLOB NOT NULL)


Для BLToolkit создан вот такой класс:
[TableName("MF_WORKSPACE_THUMBNAILS")]
public class WorkspaceThumbnails
{
    [MapField("WORKSPACE_ID")]
    public int WorkspaceID;

    [MapField("THUMBNAIL")]
    public object Thumbnail;
}


Так происходит вставка:
database.Into(database.WorkspaceThumbnails)
    .Value(t => t.WorkspaceID, id)
    .Value(t => t.Thumbnail, s)
    .Insert();


Где «s» — закодированная в base64 картинка 100x75px.
  • Вопрос задан
  • 4327 просмотров
Решения вопроса 1
@Kefir
А вы не сталкивались с тем, что bltoolkit будет передавать значение Thumbnail в параметре с установленным OracleDbType = Raw, и, соответственно, лимитом в 32кб на размер массива?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Hoobert Автор вопроса
Все оказалось на много проще. Нужно всего-лишь object Thumbnail заменить на byte[] Thumbnail и все само собой разрулится и запишется в базу. Сам себя перехитрил в итоге.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы