Есть ли какие-либо классы, которые могут быть запрошены / измененный как DB SQL, но совершенно локальные и внутренними к программе?
Я стремлюсь писать программу, которая должна иметь локальный источник данных со всеми данными, сохраненными в файле, но я хотел бы иметь возможность запросить этот банк сообщений так же, как я буду DB; совместимость LINQ была бы огромным плюс.
Данные только были бы доступны, когда программа выполняла значение, не будет никакого другого процесса, работающего для обслуживания данных, таких как SQL-сервер.
Вы можете использовать SQL Server Compact Edition. Он размещается внутри процесса и использует файл .sdf
локально. Он работает с LINQ и конструктором LINQ-to-SQL.Чтобы использовать его, вам просто нужно добавить ссылку на System.Data.SqlServerCe.dll. Он очень легкий, знакомый и имеет отличную поддержку в Visual Studio.
Кстати, группа разработчиков Visual C ++ IDE использует эту базу данных для своей информации C ++ IntelliSense в Visual Studio 2010, заменяя старые файлы .ncb. Исходя из заявленных ими целей в рамках проекта (переписывание C ++ IDE для значительного улучшения производительности и стабильности IntelliSense), его использование здесь говорит о многом.
На ум приходит XML. Я не уверен, действительно ли вы пытаетесь сохранить данные в файл или хотите сохранить их полностью в памяти. Но с XML вы можете использовать LINQ to XML для своих запросов, и у него хорошая структура, которую легко сохранить в файл и т. Д.
Наборы данных
позволяют хранить и обрабатывать несколько таблиц данных в памяти.
LINQ to DataSets является частью .NET 3.5: http://msdn.microsoft.com/en-us/library/bb386977.aspx
Это позволит настраивать формат хранения, если вы напишете сериализация и десериализация в DataSet для вашего формата.
Если вы не хотите создавать свой собственный формат файла, SQL Server Compact Edition (или SQL Express), вероятно, будет более простым вариантом (как и в другом ответе).