2010-07-27 4 views
3

То, что я хочу сделать, это:Что такое, существует ли такая инфраструктура данных?

  • значения нагрузки для программы из файла.
  • Чтение/добавление/изменение этих значений.
  • Сохранить эти значения обратно в файл
  • Я хотел бы иметь возможность создать базу данных файл
  • Я хочу столько данных, сколько возможно, чтобы остаться в памяти, так что я не куя файл
  • Я хотел бы запросить с помощью Linq или быть в состоянии использовать стандартный язык запросов
  • Я хочу возвращаемые данные в виде массивов объектов

Я полагаю, что там будет что-то вроде этого там. Похоже на поддержку GAE, но для C# и локальных приложений.

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

ответ

1

Учитывая ваши требования, я бы рекомендовал посмотреть на Entity Framework. Он отвечает почти всем вашим требованиям к запросу/обновлению и работает со многими базами данных.

Для одной файловой базы данных, которая работает с EF, вы можете рассмотреть SQL Server CE. Версия 4 находится в бета-версии в настоящее время и хорошо обрабатывает ваш единственный файл, в основном в памяти и т. Д.

Единственное, что, используя LINQ с EF, вы получите свои объекты либо как IQueryable<T>, либо IEnumerable<T>, как правило, не как массивы. Вы всегда можете позвонить .ToArray(), чтобы преобразовать их в массив, но это обычно не требуется.

0

Вы хотите, чтобы XML-документ, к которому вы легко обращаетесь, используя Linq to XML.

XDocument.Load(memoryStream) 

И вы на своем пути.

+0

LINQ to XML будет использовать 'XDocument'. –

+0

Дух, я не знаю, почему я сказал XmlDocument .. Я использую LINQ для XML все время damne, глупый мозг что-то ... –

1

Правильный способ сделать это зависит от объема данных, которые у вас есть, и от того, как вам нужно получить к нему доступ.

Вы можете просто использовать XML-файл и Linq-to-XML, если вы действительно говорите о каком-то конфигурационном файле, который может быть сразу в памяти.

Если вы говорите о большом количестве данных, вы можете посмотреть такую ​​базу данных, как Sqlite или SQL Server Express или SQL Server Compact Edition.

Смежные вопросы