Comment instancier le context EF6 dans T4?

Je veux instancier un nouveau context EF6 dans un template T4 mais j'ai l'erreur suivante:

System.InvalidOperationException: le membre 'Instance' du type de fournisseur Entity Framework 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version = 6.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089' n'a pas renvoyé d'object hérite de 'System.Data.Entity.Core.Common.DbProviderServices'. Les fournisseurs Entity Framework doivent hériter de cette class et le membre 'Instance' doit renvoyer l'instance singleton du fournisseur.

Le problème était que le context Entity Framework ne pouvait pas être instancié car la string de connection ne pouvait pas être lue.

J'ai fait ce qui suit pour get la string de connection:

var map = new ExeConfigurationFileMap(); map.ExeConfigFilename = this.Host.ResolvePath(@"..\..\Web.config"); var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); var connectionSsortingng = config.ConnectionSsortingngs.ConnectionSsortingngs["BrainPerformEntities"].ConnectionSsortingng; 

Mais assurez-vous que vous avez importé les éléments suivants pour que le code ci-dessus fonctionne:

 <#@ import namespace="Microsoft.VisualStudio.TextTemplating" #> <#@ import namespace="System.Configuration" #> <#@ import namespace="System" #> 

Vérifiez également que vous avez référencé tous les assemblys de structure d'entité:

 <#@ assembly name="$(MSBuildProjectDirectory)\bin\EntityFramework.dll" #> <#@ assembly name="$(MSBuildProjectDirectory)\bin\EntityFramework.SqlServer.dll" #> <#@ assembly name="System.Core.dll" #> <#@ assembly name="System.Configuration" #> <#@ assembly name="System.Data.dll" #>