Question

Je démarre une nouvelle application Web. Il sera hébergé sur un service payant supplémentaire pour SQL Server et, franchement, je ne pense pas que le site nécessite autant de base de données. À l'heure actuelle, le modèle de données est constitué de 5 tables. Et je serais étonné que la plus grande table ait jamais 10 000 disques.

J'aimerais donc garder la base de données légère. SQLite a piqué mon intérêt à l'origine car je dois l'apprendre pour Android. Mais le manque de clés étrangères me fait frémir. Bien sûr, il est possible d'implémenter quelque chose qui ressemble à des contraintes de clé étrangère, mais cela ne semble pas être relationnel. Firebird semble être la seule base de données légère (et gratuite) prenant en charge les FK.

De plus, j'aimerais vraiment me familiariser avec LINQ avec ce projet. Jusqu'à présent, je n'ai trouvé que dbLINQ qui me permet d'utiliser SQLite ou Firebird avec LINQ. Il est actuellement à la v0.18, il est donc loin d'être au top des heures. J'ai exécuté les tests pour SQLite avec dbLinq et ils ont réussi ce dont j'avais besoin.

Il y avait une autre implémentation de LINQ pour SQLite mais tous les liens que j'ai trouvés pour cela se retrouvent en 404.

Quelles sont mes options pour les bases de données légères compatibles avec LINQ? Aucune des éditions compactes de SQL Server n'est disponible, sauf s'il en existe une qui est déployable par XCOPY sans installation d'agent / service ? Je ne peux pas demander à l'hôte d'installer un nouveau logiciel car je doute qu'ils le fassent et je veux que l'application soit très portable (en ce qui concerne l'hébergement).

La liste à ce jour:

  • SQLite
  • Firebird
  • SQL Server Compact
  • VistaDB

Mise à jour: j'ai essayé toutes les versions et a écrit mes impressions ici . La version courte: SQLite gagne haut la main. C'est le seul qui a une bonne interface graphique, aucune installation et est gratuit.

Était-ce utile?

La solution 4

SQLite. A une bonne interface graphique (avec auto-freakin-complete pas moins), n'a aucune empreinte d'installation, est gratuit et fonctionnera indépendamment du lieu où j'héberge le site Web. Je sais que je réponds à ma propre question, mais personne d'autre n'a mis SQLite dans sa réponse.

Important : SQLite nécessitera un hôte Web utilisant le mode Confiance totale si vous souhaitez l'exécuter sur un hébergement partagé.

Autres conseils

Vous pouvez utiliser LINQ to SQL tel quel sur une base de données existante, à condition de pouvoir créer un objet IDbConnection standard.

Voici un code pour utiliser LINQ sur une base de données 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://fr.wikipedia.org/wiki/SQLCE) prend en charge LINQ et tous les autres outils VS, est intégré à VS 2008, prend en charge les FK et est déployable par XCOPY avec un fichier plat pour une base de données. Soyez averti cependant, que ce n'est pas sans ses réserves aussi, beaucoup de choses comme les vues ou les requêtes imbriquées tombent, et cela peut être assez lourd si vous commencez à avoir une taille de base de données assez grande (c'est-à-dire 50 Mo +).

SQLite est également beaucoup mieux si vous utilisez le fournisseur SQLite .NET ici ( http: //sqlite.phxsoftware.com/ ), fonctionne également avec LINQ et prend en charge les logiciels de base.

Je vous suggère de consulter VistaDB . Cela fera exactement ce que vous cherchez avec l'avantage supplémentaire que vous offre SQLCE et SQLite prend en charge les vues, les procédures stockées et les déclencheurs. En fait, il prend en charge l’écriture de procédures et de déclencheurs dans TSQL ainsi que .NET afin que vous puissiez exploiter votre connaissance SQL Server ET .NET.

SQL Server Express

VistaDB est la seule alternative si vous souhaitez exécuter votre site Web sur un hébergement partagé (la quasi-totalité d'entre eux ne vous laissera pas exécuter vos sites Web en mode Full Trust), mais également si vous avez besoin d'un site Web simple à déploiement optimisé avec x-copy.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top