Frage

Ich beginne eine neue Web-Anwendung auf. Es wird auf einen Dienst gehostet wird, die für SQL Server Sonder- und ehrlich gesagt glaube ich nicht, die Seite so viel von einer Datenbank benötigt. Im Augenblick ist das Datenmodell 5 Tabellen. Und ich werde staunen, wenn der größte Tisch jemals von 10k Datensätze geht.

So ich die db leichte behalten möchten. SQLite mein Interesse geweckt ursprünglich, weil ich es für Android lernen müssen. Aber die Mangel an Fremdschlüssel macht mich erschaudern. Sicher ist es möglich, etwas zu implementieren, die wie Fremdschlüssel-Constraints aussieht, aber es fühlt sich einfach un-relational. Firebird scheint, wie die nur leicht (und kostenlos) db, die FKs unterstützt.

Außerdem würde Ich mag meine Füße nass in LINQ mit diesem Projekt. Bisher habe ich nur gefunden DbLinq die mich SQLite oder Firebird mit LINQ verwenden lässt. Es ist derzeit auf V0.18, so dass es weit von Hauptsendezeit ist. Ich habe die Tests für SQLite mit DbLinq laufen und sie gehen für das, was ich brauche.

Es war eine andere Implementierung von LINQ für SQLite aber alle Links Ich habe es in 404s Ende gefunden.

Also, was sind meine Optionen für leichte Datenbanken, die mit LINQ kompatibel sind? Jede der kompakten Editionen von SQL Server sind, es sei denn es eine, die XCOPY ausfahrbaren ist mit nicht eines Agenten / Service installieren ? Ich kann nicht den Host fragen neue Software zu installieren, da ich bezweifle, sie werden es tun, und ich möchte, dass die App sehr tragbar sein (in Bezug auf Hosting verfügbar).

Die Liste so weit:

  • SQLite
  • Firebird
  • SQL Server Compact
  • VistaDB

Update: Ich habe versucht, alle Versionen und

Andere Tipps

Sie können mit LINQ to SQL als auf einer bestehenden Datenbank, so lange, wie Sie eine Standard-IDbConnection Objekt machen kann.

Hier ist ein Code LINQ zu verwenden, um auf einem Firebird DB.

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) unterstützt LINQ und alle anderen VS-Tools, in VS 2008 gebaut, unterstützt FKs und ist XCOPY für eine Datenbank mit einer Flat-File einsetzbar. Seien Sie gewarnt, dass es nicht ohne Einschränkungen auch, eine Menge Dinge, wie Ansichten oder verschachtelte Abfragen umfallen, und es kann ziemlich aufgebläht sein, wenn Sie anfangen, die Größe der Datenbank ziemlich groß (das heißt 50 MB +) erhalten.

SQLite ist auch viel besser, wenn Sie die SQLite-.NET-Provider verwenden hier ( http: //sqlite.phxsoftware.com/ ), arbeitet mit LINQ als auch, und hat grundlegenden VS-Support.

Ich würde vorschlagen, Sie haben einen Blick auf VistaDB . Es werde tun genau das, was Sie suchen mit dem zusätzlichen Vorteil über SQLCE und SQLite, dass es unterstützt views, Stored Procedures und Trigger. Wie in der Tat unterstützt es das Schreiben von Prozeduren und Triggern in TSQL sowie .NET, so dass Sie Ihre SQL Server und .NET-Kenntnisse nutzen können.

SQL Server Express

VistaDB ist die einzige Alternative, wenn Sie Ihre Website auf Shared-Hosting gehen laufen (fast alle von ihnen werden nicht zulassen, Sie führen Sie Ihre Webseiten unter Voll Trust-Modus) und auch, wenn Sie einfach x-Kopie Einsatz fähige Website benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top