2012-07-04 1 views
0

J'ai une application web ASP.NET mvc2 fonctionnant déjà sur deux machines et connectée au serveur sql. Ma base de données est 200mb à max. Je veux migrer mon application Web pour utiliser mvc4 et EF et je veux également utiliser une partie de la base de données en supprimant sql server.Migration de mvc2 en mvc4 avec le serveur ef/codefirst et sql vers la base de données inmemory

J'ai vérifié sur Internet et je peux migrer mon application vers mvc4 et EF, mais je n'ai pas trouvé d'aide pour savoir dans quelle base de données memomry je peux utiliser avec EF/Codefirst. Aussi, comment puis-je sauvegarder la base de données inmemory sur un stockage Web comme Amazon S3 ou Azure Storage?

Répondre

0

Tout d'abord, pourquoi voulez-vous utiliser une base de données en mémoire? Les bases de données SQL ont une grande fiabilité et des capacités d'interrogation.

Lors de l'utilisation de deux serveurs, une base de données en mémoire ne fonctionnera pas car la mémoire sera locale à chaque serveur. Vous pouvez utiliser un cache distribué ou quelque chose pour faire ce travail.

Entity Framework n'est pas adapté à ce scénario. C'est un objet relationnel base de données mapper. Cela n'a aucun sens de l'utiliser avec une base de données en mémoire. Un ORM traduit les objets dans un magasin relationnel (comme une base de données). En mémoire, vous ne traitez que des objets, vous n'avez donc pas besoin d'ORM.

Si votre base de données est seulement 200mb, vous n'aurez aucun problème de performance. Une base de données est optimisée pour votre scénario et un ORM comme Entity Framework accélérera votre temps de développement.

+0

J'ai travaillé sur un projet où le test unitaire était trop lent pour certains tests utilisant tout sauf un magasin de données en mémoire. –

+0

@CarlG Unit testing est une histoire complètement différente. Lorsque vous exécutez des tests unitaires, évitez d'utiliser une base de données. Si vous utilisez une base de données, vous exécutez des tests d'intégration. Il devrait y avoir seulement quelques tests d'intégration dans votre projet. Les tests unitaires peuvent être exécutés en permanence (en particulier lors de l'utilisation de Test Driven Development). Les tests d'intégration peuvent être exécutés moins fréquemment sur un serveur de construction. –

Questions connexes