db.accommodations.find({"name":{"$exists":true, "$ne":[], "$not":{"$size":1}}})
Почему не используют новую функцию в SL 2, названном "Изолированное устройство хранения данных"? Это - полностью поддержка в локальной базе данных (как Google Gear), но конечно Это не база данных. Можно использовать формат файлов XML для хранения его.
Моль сказала в его блоге об этом Динозавра http://www.danielmoth.com/Blog/2008/04/isolatedstorage-in-siverlight-2-beta-1.html, сделанного очень хорошей сводкой по http://www.ddj.com/windows/208300036?pgno=2
На основе этого примера выглядит возможным использовать Google Gears и таким образом Sqlite. Майор вниз сторона является объемом работы интеграции и потребности установить все же еще одну платформу на компьютере клиента.
@Aaron Fischer,
Я очень интересуюсь этим вопросом также. Я смотрю DB для XBAP (WPF в браузере) приложения. Вот мой вопрос, "Какую встроенную базу данных с Изолированной поддержкой устройства хранения данных можно рекомендовать?"
SQLite & MSSQL CE (иначе SQL нигде) не работала бы.
VistaDB реализован в.NET и может работать при ограничениях (он имеет поддержку Изолированного устройства хранения данных), но я ищу альтернативы.
Другая опция является Sybase iAnywhere - но я не уверен, как развернуть его на машине конечного пользователя.
Я собираюсь попробовать DB4objects за Silverlight. Если это работало бы, я обновлю сообщение.
Одна последняя вещь..., что тип БД функциональности - что-то Flash/Flex, не предлагает..., это было бы отличным способом для Microsoft к differitiate Silverlight и действительно дало бы ему участок.
Если Ваши потребности кэширования являются достаточно главными, и у Вас нет такого большого количества данных, что Вы делаете их для уменьшения Использования оперативной памяти, возможно, Вам даже не нужна полноценная база данных. Вы могли создать объектную базу данных своего рода использование структуры, такой как словарь и поместить в него объекты, которые иначе будут Вашими строками таблицы. Вы могли затем сериализировать эти данные в файл в Вашем локальном устройстве хранения данных и десериализовать его в следующий раз выполнение приложения. Если Ваши структуры данных преуспеваются, Вы могли бы даже использовать Linq для запросов объектной базы данных.
Если Ваша основная цель состоит в том, чтобы минимизировать количество раз, необходимо вытянуть те же данные из сервера, это могло быть чем-то для рассмотрения.
С другой стороны, это не способ пойти, если у Вас есть слишком много данных или если бы Вы делаете частые записи к базе данных (поскольку это должно было бы затем сериализировать целую структуру к диску каждый раз).
Если Вы действительно имеете слишком много данных, но все еще хотите попробовать это, Вы видели, существует ли логический способ разделить Ваши данные в несколько файлов, которые, вероятно, не будут необходимы одновременно. Затем Вы могли выставить свои неиспользованные данные к диску и загрузить его назад в следующий раз, когда для программы был нужен он. Конечно, если Вы проявите этот подход слишком далеко, то Вы закончите тем по существу, что писали свою собственную систему баз данных так или иначе.
Я хотел бы видеть две вещи. 1.) Некоторая сохраненная поддержка локальной базы данных или 2.) Некоторая фактическая поддержка сервера базы данных без стычки веб-сервисов.
Лично, я взял бы Доступ и OleDb.:)
Теперь существует порт sqlite для C # под названием csharp-sqlite Это обещает, как только они найдут подходящее имя.
Ответ - siaqodb. Siaqodb - это настоящая база данных объектов на стороне клиента Silverlight, вы можете сохранить объект с помощью всего одной строки кода и получить обратно объекты через LINQ. Для получения дополнительной информации см. http://siaqodb.com