Есть ли способ хранить и получать доступ к базе данных SQL CE (.sdf) в изолированном хранилище? - PullRequest
2 голосов
/ 07 мая 2010

У меня есть приложение .Net, которое должно хранить все свои локальные данные в изолированном хранилище.Я хочу начать использовать SQL CE для хранения этих данных.Я не могу найти никаких документов о том, как (или даже если) это возможно.

  1. Можно ли использовать изолированное хранилище для хранения базы данных SQL CE?

  2. Если это так, как будет выглядеть строка подключения (или есть какой-то другой способ, которым вам нужно было бы открыть базу данных)?

Ответы [ 2 ]

1 голос
/ 07 мая 2010

Похоже, что SqlCe не поддерживает изолированное хранилище. Смотрите эти вопросы.

/133095/kakuy-vstroennuy-bazu-dannyh-s-podderzhkoi-izolirovannogo-hranilischa-vy-mozhete-porekomendovat... Каковы преимущества VistaDB

VistaDB выглядит как лучший выбор. Или вы могли бы создать какой-нибудь хак, где вы используете IS API для копирования файла SDF (SQlCe) из изолированного хранилища в место в обычной файловой системе, где вы можете нормально взаимодействовать с ним, а затем скопировать файл SDF обратно в IS. Это в значительной степени отрицательно сказывается на назначении изолированного хранилища, поэтому я бы не рекомендовал его.

0 голосов
/ 07 мая 2010

SQL Server CE напрямую не поддерживает это; вам придется использовать другой продукт. В дополнение к VistaDB вы также можете использовать db4o , если вам не нужна реляционная база данных (это объектная база данных и имеет изолированную оболочку хранилища).

Технически вы можете использовать Reflection, чтобы получить полный путь к файлу изолированного хранилища, и использовать результат в строке подключения, хотя я думаю, что если вам потребуется использовать изолированное хранилище, то ваше приложение не работает под полное доверие И даже если это так, это все равно опасно. Тем не менее, если вы действительно впадаете в отчаяние, вы можете взглянуть на этот поток , в котором есть пример, который включает создание потока и размышление над одним из личных полей потока, содержащего имя файла.

...