В чем преимущество сопоставления двоичного столбца с System.Data.Linq.Binary вместо byte []? - PullRequest
2 голосов
/ 16 сентября 2009

LINQ to SQL по умолчанию отображает двоичный столбец (varbinary, image, ...) на свойство типа 'System.Data.Linq.Binary'.Работать с двоичными данными таким образом не так сложно, но вы можете вручную изменить это отображение на 'byte []', упрощая работу с двоичными данными (поскольку вам больше не нужно преобразовывать их в код.

В чем недостаток этого? Почему для этих типов столбцов по умолчанию выбран двоичный тип. Почему Бинарный тип вообще вообще существует? Я предполагаю, что использование двоичного типа по какой-то причине позволяет вам«ленивая загрузка» двоичных данных, но это только мое предположение, и я не могу найти никакой документации, подтверждающей это.

У кого-нибудь есть еще информация об этом?

ОБНОВЛЕНИЕ:

Согласно этой записи блога , способ выполнить отложенную загрузку двоичного свойства состоит в том, чтобы установить для свойства «delayloaded» значение True, что превращает тип данных свойства в Link. Это будет означать, что обычныйДвоичное свойство не выполняет ленивую загрузку само по себе, поэтому мой вопрос остается: какое преимущество имеет двоичный код перед байтом []?

1 Ответ

1 голос
/ 16 сентября 2009

Я нашел это упоминание здесь :

Двоичный тип существует, потому что LINQ to SQL не может отслеживать изменения, внесенные в байт[]. Он только отслеживает сделанные изменения в собственность, когда вы назначаете новый байт [] до него. Бинарный тип является неизменяемая версия byte [], например Тип String является неизменяемой версией обугливается []. Поскольку вы не можете изменить содержимое двоичного типа, единственное способ изменить это назначить ваш свойство нового экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...