Есть ли какие-либо уровни персистентности, подобные базам данных, доступные для .NET? - PullRequest
2 голосов
/ 23 декабря 2009

Я пытаюсь решить проблему отключенной операции для приложения с относительно богатым уровнем данных, и мне приходит в голову, что наиболее естественный способ выполнить эту работу - это база данных на стороне клиента. Однако я не хочу устанавливать отдельный продукт, и мне остается только задаться вопросом, существуют ли какие-либо уровни, где можно по существу связать слой персистентности, похожий на базу данных, с приложением. Кто-нибудь имел опыт работы с этим? Есть ли хорошие рамки, которые покрывают эту область?

Ответы [ 6 ]

6 голосов
/ 23 декабря 2009

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

http://sqlite.phxsoftware.com/

4 голосов
/ 24 декабря 2009

Если вам не нужны возможности реляционной базы данных и вы хотите упростить перевод вашей объектной модели на постоянство, вам следует изучить DB4O - это объектная база данных, которая может работать на вашем клиенте и прозрачно сохраняйте ваши занятия.

2 голосов
/ 23 декабря 2009

Даже если вы не хотите устанавливать другой продукт, вы можете подумать о SQL Server Compact Edition . Хотя вам нужно установить его, он бесплатный и не устанавливает никаких новых служб Windows.

Сами базы данных - это просто один файл на базу данных. LINQ to SQL и LINQ to Entities по-прежнему поддерживаются, и вы даже можете получить версию для Windows Mobile.

2 голосов
/ 23 декабря 2009

.Net имеет строго типизированные наборы данных, которые отлично подходят для этой цели. http://msdn.microsoft.com/en-us/library/esbykkzb%28VS.71%29.aspx

2 голосов
/ 23 декабря 2009

Вы можете использовать NHibernate с базой данных sqlite или sqlce. Мы используем sqlce.

1 голос
/ 24 декабря 2009

Вы ищете уровень персистентности, похожий на базу данных, потому что вам нужна мощность запросов к базе данных на стороне клиента, или для персистентности между запусками приложения, или для того и другого?

Если вам нужны оба или только постоянство, то подойдет любой другой ответ, демонстрирующий интегрированные библиотеки БД (например, этот для SQL Lite).

Однако, если вам нужна только возможность выполнять сложные запросы к данным в памяти , тогда я бы весьма рекомендовал бы использовать обычные LINQ-to-Objects, при условии, что опция доступна для вас.

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