1

Nous sommes sur le point de démarrer un projet qui implique l'utilisation d'un Sql Server 2005 avec des milliers d'enregistrements. Dans le passé, j'ai utilisé NHibernate avec de bons résultats. Mais maintenant j'évalue Linq à l'entité pour l'accès aux données. J'ai ces questions sur L2E,Linq à entité avec une grande base de données

  1. Quelle est la mise en cache que la L2E fait par rapport à NHibernate (essentiellement comment est la performance)?
  2. Est-il facile de travailler avec un seul fichier .edmx (plusieurs développeurs peuvent-ils travailler simultanément sur ces fichiers)? Dans le cas où nous décidons de diviser le fichier, est-ce facile à faire et quels sont les inconvénients?
  3. Est-il facile de simuler les classes générées?
  4. Supporte-t-il MS Access? ne fait pas de mise en cache implicite
+0

Mayge vous devriez demander à un seul, des questions ciblées? –

+0

Je sais que lakh est 100.000 mais je pense que les autres n » – tuinstoel

Répondre

2
  1. Linq2Entities. Lorsque vous exécutez la requête, elle convertit la Linq en requête SQL, l'exécute et renvoie le résultat. C'est si simple.

  2. Vous ne pouvez pas diviser votre modèle dans plus d'un fichier EDMX. Eh bien, vous pouvez, mais vous perdrez les relations entre les entités. Vous pouvez le faire si votre base de données contient plusieurs groupes d'entités qui ne sont pas interdépendants.

  3. Pas très. Nous avons un système qui se moque le ObjectContext pour intercepter les appels vers (nous utilisons une interface pour faire l'accès de l'entité, qui associe au réel ObjectContext à l'exécution et à une maquette ObjectContext au moment unittest.

  4. Il fait, mais vous devrez créer vos entités vous (vous ne pouvez pas les générer de la DB).

+0

En ce qui concerne les moqueries, est-ce que le fait de s'entraîner sur une épave (objectContext.Entity.Something()) de codage vous a fait mal pendant l'écriture des tests – Nazgul

+0

Oui, il a la mise en cache. Tous les résultats d'entité interrogés sur un contexte sont mis en cache dans ce contexte. Si vous gardez votre contexte en vie, vous aurez la mise en cache. L'astuce est que vous devez utiliser DataContext.GetObjectByKey() pour récupérer un objet mis en cache. –

+0

D'où mon "non implicite". – Inferis

Questions connexes