Строка подключения «Невозможно загрузить указанный ресурс метаданных» Проблема - PullRequest
2 голосов
/ 20 ноября 2011

Я пытаюсь подключить сопоставления Entity Framework для интеграции с сервером Sql на размещенном сайте.

Эта проблема может быть найдена в следующей трассировке стека:

[MetadataException: Unable to load the specified metadata resource.]
   System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources(String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver) +387
   System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource..ctor(String originalPath, String assemblyName, String resourceName, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver) +72
   System.Data.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver) +222
   System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry, MetadataArtifactAssemblyResolver resolver) +74
   System.Data.Metadata.Edm.MetadataArtifactLoader.Create(String path, ExtensionCheck extensionCheck, String validExtension, ICollection`1 uriRegistry) +68

Я предполагаю, что моя строка подключения настроена неправильно, так как мне нужно генерировать эту строку динамически во время выполнения.Строка выглядит следующим образом:

<add name="Model1Container-providerConnectionString" 
     connectionString="data source=something.sqlserver.sequelizer.com;
     User ID=**; 
     Password=**;
     Initial Catalog=dbd5d3955e11834e1088929f9d005af0a8;
     user instance=True;multipleactiveresultsets=True;App=EntityFramework" />

Затем во время выполнения строка строится следующим образом:

    public static string GetConnectionString()
    {
        string baseConnectionString = ConfigurationManager.ConnectionStrings["Model1Container-providerConnectionString"].ConnectionString;

        EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
        entityBuilder.Provider = "System.Data.SqlClient";
        entityBuilder.ProviderConnectionString = baseConnectionString;
        entityBuilder.Metadata = @"res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl";

        return entityBuilder.ToString();
    }
}

Работая над этим вопросом уже несколько дней, буду очень признательнаопыт сообщества в поиске рабочего решения.

...