Il n'y a pas d'impact sur les performances qui vaille la peine d'être mentionné. Un constructeur statique est appelé une fois pour votre application et lorsque la première instance de classe est créée. Je fais cela dans la plupart des applications et je n'ai encore remarqué aucun problème.
Vous pourriez également appeler cette ligne via une méthode statique de votre couche de données sans avoir de référence à EF dans l'assembly de la couche d'application web appelante.
Je crois que cette ligne ne fait que définir une référence interne à l'initialiseur et ne demande pas de traitement coûteux. Le travail coûteux - la découverte et la construction du modèle EF - est effectué lorsque la première instance de contexte est utilisée.
En passant : Avoir ce travail coûteux au début de l'application peut parfois être souhaitable afin d'avoir le retard dès le début de l'application et l'éviter lorsque l'utilisateur lance la première requête dans l'application. Pour forcer l'initialisation, vous devez non seulement définir l'initialiseur mais également exécuter l'initialisation elle-même, par exemple comme suit :
Database.SetInitializer(null);
using (var context = new DataContext())
{
context.Database.Initialize(false);
}