2010-07-15 4 views
1

Je tente d'incorporer 'EF Tracing Data Provider' dans une application MVC2 existante à l'aide de VS2010, .NET 4.0 afin de consigner toutes les commandes SQL. Je n'ai aucun intérêt en ce moment chez le fournisseur de Caching. Je crois que j'ai suivi toutes les étapes énumérées dans le blog. BLOG POST Mon projet compile sans erreur, cependant quand j'essaye d'exécuter le projet j'obtiens l'erreur suivante:Erreur lors de l'utilisation de 'EF Tracing Data Provider'

'La chaîne ne peut pas avoir la longueur zéro.' Les points d'erreur à Extended_JCIMS_MVC2_EF_Entities.cs ligne: 25

Line 25:   public ExtendedJCIMS_DevEntities(string connectionString) 
Line 26:    :base(EntityConnectionWrapperUtils.CreateEntityConnectionWithWrappers(

Je suis incapable de déterminer ce qui est à l'origine de cette erreur. Je suppose que l'erreur fait référence à la chaîne de connexion du fichier Web.Config. Il n'aime pas la variable 'connectionString'. Je fais évidemment quelque chose de fatigué. J'apprécierais une poussée dans la bonne direction.

Mark Buckley [email protected]

Les bits Relevent sont les suivants:

Web.config 
-------------------------------------------------------------------------- 

    <add name="JCIMS_DevEntities" 
    connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MyServer;Initial   Catalog=MyDatabase;User ID=MyUser;Password=myPassWord;MultipleActiveResultSets=True&quot;" 
    providerName="System.Data.EntityClient"/> 

<system.data> 
<DbProviderFactories> 
    <add name="EF Tracing Data Provider" invariant="EFTracingProvider" description="Tracing Provider Wrapper" 
    type="EFTracingProvider.EFTracingProviderFactory, EFTracingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b" /> 
    <add name="EF Generic Provider Wrapper" invariant="EFProviderWrapper" description="Generic Provider Wrapper" 
    type="EFProviderWrapperToolkit.EFProviderWrapperFactory, EFProviderWrapperToolkit, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b" /> 
</DbProviderFactories> 
    </system.data> 


Global.ascx 
----------------------------------------------------------------------- 

protected void Application_Start() 
{ 
AreaRegistration.RegisterAllAreas(); 
RegisterRoutes(RouteTable.Routes); 
//EFTracingProviderConfiguration - LOG ALL Sql commands 
EFTracingProviderConfiguration.LogToFile = Server.MapPath("~/JCIMS_MVC2_EF_SQL_Logfie.txt"); 
} 


Extended_JCIMS_MVC2_EF_Entities.cs 
     -------------------------------------------------------------------------- 
namespace JCIMS_MVC2_EF.DomainModel 
{ 
/// <summary> 
/// Partial calss that Extends the EF Datacontext Class 
/// </summary> 
public partial class ExtendedJCIMS_DevEntities : JCIMS_DevEntities 
{ 
    private TextWriter logOutput; 

    public ExtendedJCIMS_DevEntities() 
    : this("name=JCIMS_DevEntities") 
    { 
    } 

    public ExtendedJCIMS_DevEntities(string connectionString) 
    : base(EntityConnectionWrapperUtils.CreateEntityConnectionWithWrappers(
    connectionString, 
    "EFTracingProvider"     
    )) 
    { 
    } 

    //... and more 
} 
} 

    SearchRepository.cs 
------------------------------------------------------------------ 
public class SQLSearchRepository : ISearchRepository 
{ 
//Database connection 
    private ExtendedJCIMS_DevEntities db = new ExtendedJCIMS_DevEntities(); // tracing version 

public IEnumerable<SearchResults> ListAll(string strSearch, string chkSearch) 
    { 
    return (from s in db.Schools.... 
    // and more... 
    } 

apprécierais toute quiconque d'assistance peut me donner ...

-Mark-

+0

Quelqu'un a des idées à ce sujet? J'ai même essayé la 'Méthode d'injection alternative' listée dans le blog et j'ai la même erreur. J'aimerais vraiment que cela fonctionne. –

Répondre

0

Avez-vous débogué et confirmé que la chaîne connectionString transmise à la méthode ExtendedJCIMS_DevEntities n'est pas vide ou vide? C'est ce que l'erreur semble indiquer.

+0

Oui ... Si je mets un point d'arrêt sur cette méthode, la connectionString contient ... "name = JCIMS_DevEntities" –

Questions connexes