3

Je recherche EF4 pour un nouveau projet de développement d'application interne utilisant .NET v4, EF4, & SQL Server 2008 R2. À ce jour, notre petite équipe de développement a fait très peu de développement .NET et seulement des applications EF de démonstration. Nos applications actuelles utilisent des rôles d'applications DB pour la sécurité et cela a bien fonctionné pour nous.Entity Framework 4 et les rôles des applications SQL Server - Comment travailler ensemble?

à la lecture et une expérimentation de base, je crois comprendre:

  • EF peut ouvrir et connexions DB proximité au besoin. Cependant, il est possible d'ouvrir et de fermer manuellement un EntityConnection à utiliser par le ObjectContext EF.

  • La sécurité des rôles d'application SQL Server nécessite l'exécution de sp_setapprole sur les connexions de base de données pour définir le contexte du rôle d'application. sp_unsetapprole peut être utilisé pour rétablir une connexion à son contexte d'origine.

  • Par défaut, les connexions de base de données sont regroupées. L'utilisation de sp_setapprole avec le regroupement de connexions peut s'avérer problématique si les connexions ne sont pas restaurées dans leur contexte d'origine avant d'être renvoyées au pool.

Si tout ce qui précède est correcte, la manière évidente d'utiliser EF4 avec app-rôles est d'ouvrir manuellement & fermer le EntityConnection, en étant sûr d'exécuter sp_setapprole après l'ouverture et sp_unsetapprole avant la fermeture.

Y a-t-il un meilleur moyen? Je suis surtout préoccupé par la fermeture accidentelle de la connexion sans d'abord appeler sp_unsetapprole. Cela ressemble à une erreur qui peut ne pas être détectée immédiatement.

Répondre

0

Vous pouvez simplement ajouter "Pooling = false;" à votre connexion de magasin dans app.config (chaîne de connexion du fournisseur).
Si vous n'avez pas vraiment besoin de pooling, cela semble être la solution la plus simple.

+0

Cela devrait être une option facile à essayer. Mais je me demande quel sera le coup de performance? – JimMat

Questions connexes