LINQ + облегченная база данных:какую БД мне выбрать?

StackOverflow https://stackoverflow.com/questions/481684

Вопрос

Я запускаю новое веб-приложение.Он будет размещен на сервисе, за который взимается дополнительная плата за SQL Server, и, честно говоря, я не думаю, что сайту нужна такая большая база данных.Сейчас модель данных состоит из 5 таблиц.И я буду удивлен, если самая большая таблица когда-либо будет содержать 10 тысяч записей.

Поэтому я бы хотел, чтобы БД была легкой. SQLite изначально заинтересовал меня, потому что мне нужно изучить его для Android.Но отсутствие внешних ключей заставляет меня съеживаться.Конечно, можно реализовать что-то, похожее на ограничения внешнего ключа, но это кажется нереляционным. Жар-птица кажется единственной легкой (и бесплатной) базой данных, поддерживающей FK.

Кроме того, мне бы очень хотелось освоить LINQ в этом проекте.Пока что я нашел только дбЛИНК это позволяет мне использовать SQLite или Firebird с LINQ.Сейчас это версия 0.18, так что до прайм-тайма еще далеко.Я запустил тесты SQLite с помощью dbLinq, и они прошли то, что мне нужно.

Была еще одна реализация LINQ для SQLite, но все ссылки, которые я нашел на нее, заканчиваются ошибками 404.

Итак, какие у меня есть варианты облегченных баз данных, совместимых с LINQ?Все компактные версии SQL Server отсутствуют, за исключением тех, которые можно развернуть с помощью XCOPY. без установки агента/сервиса?Я не могу просить хостера установить новое программное обеспечение, так как сомневаюсь, что они это сделают, и я хочу, чтобы приложение было легко переносимым (по отношению к хостингу).

Список на данный момент:

  • SQLite
  • Жар-птица
  • SQL-сервер компактный
  • VistaDB

Обновлять: Я опробовал все версии и написал здесь свои впечатления.Краткая версия:SQLite безоговорочно побеждает.Это единственный продукт, который имеет хороший графический интерфейс, не требует установки и бесплатен.

Это было полезно?

Решение 4

SQLite.Имеет хороший графический интерфейс (не меньше, чем с автоматическим завершением), не требует установки, бесплатен и будет работать независимо от того, где я размещаю веб-сайт.Я знаю, что отвечаю на свой вопрос, но никто больше не упомянул в своем ответе только SQLite.

Важный:SQLite потребуется веб-хост, использующий режим полного доверия, если вы хотите запустить его на общем хостинге.

Другие советы

Вы можете использовать LINQ to SQL в существующей базе данных, если вы можете создать стандартный IDbConnection объект.

Вот код для использования LINQ в базе данных Firebird.

DbProviderFactory dbProvider = DbProviderFactories
    .GetFactory("FirebirdSql.Data.FirebirdClient");

DbConnection connection = dbProvider.CreateConnection();
connection.ConnectionString = "some connection string";

DataContext linqContext = new DataContext(connection);

var query = from something in linqContext.GetTable<SomeType>() 
            select something.someproperty;

SQL Server Compact Edition (http://en.wikipedia.org/wiki/SQLCE) поддерживает LINQ и все другие инструменты VS, встроен в VS 2008, поддерживает FK и может быть развернут с помощью XCOPY с помощью плоского файла для базы данных.Однако имейте в виду, что здесь также есть свои оговорки: многие вещи, такие как представления или вложенные запросы, не работают, и это может быть довольно раздутым, если вы начнете получать довольно большой размер базы данных (т.е.50 МБ+).

SQLite также много лучше, если вы используете здесь поставщик SQLite .NET (http://sqlite.phxsoftware.com/), также работает с LINQ и имеет базовую поддержку VS.

Я бы посоветовал вам взглянуть на VistaDB.Так сойдет именно то, что ты ищешь благодаря дополнительному преимуществу по сравнению с SQLCE и SQLite, заключающемуся в поддержке представлений, хранимых процедур и триггеров.Фактически, он поддерживает написание процедур и триггеров как в TSQL, так и в .NET, поэтому вы можете использовать свой SQL Server И свои знания .NET.

SQL-сервер Экспресс

VistaDB — единственная альтернатива, если вы собираетесь запустить свой веб-сайт на общем хостинге (почти все из них не позволяют запускать ваши веб-сайты в режиме полного доверия), а также если вам нужен простой веб-сайт с возможностью развертывания в виде копии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top