连接字符串“无法加载指定的元数据资源”问题

发布于 2024-12-17 02:04:17 字数 2195 浏览 3 评论 0原文

我正在尝试将我的实体框架映射连接到托管站点上的 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();
    }
}

现在已经研究这个问题几天了,非常感谢社区在寻找可行解决方案方面的专业知识。

I am trying to connect my Entity Framework mappings to be integrated with an Sql server on a hosted site.

This issue can be found in the following stack trace:

[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

I am assume that my connection string is not being setup correctly, as I need to generate this string dynamically at runtime. The String looks as follows:

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

Then on run time the string is constructed as follows:

    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();
    }
}

Been working on this issue for a few days now, would very much appreciate the communities expertise in finding a working solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文