Asp.net mvc 2 EF4的动态连接字符串,获取元数据路径无效

Asp.net mvc 2 EF4的动态连接字符串,获取元数据路径无效,asp.net-mvc-2,entity-framework-4,Asp.net Mvc 2,Entity Framework 4,这是我的问题 我将动态连接字符串用于实体框架上下文 //In Web Config add key="DataSource" value="WIN-QBRH0MJL8IT\ISS" /> //In my EntityFactory.cs public static DBEntities GetEntity() { var scsb = new SqlConnectionStringBuilder(); scsb.Da

这是我的问题

我将动态连接字符串用于实体框架上下文

//In Web Config

add key="DataSource" value="WIN-QBRH0MJL8IT\ISS" />


//In my EntityFactory.cs
 public static DBEntities GetEntity()
        {
            var scsb = new SqlConnectionStringBuilder();

            scsb.DataSource = ConfigurationManager.AppSettings["DataSource"];

            scsb.InitialCatalog = "db1";
            scsb.MultipleActiveResultSets = true;
            scsb.IntegratedSecurity = true;
            if (HttpContext.Current.Session["DBName"] == null)
            {
                HttpContext.Current.Response.Redirect("/Account/Step1");
            }
            else
            {
                scsb.InitialCatalog = HttpContext.Current.Session["DBName"].ToString();
            }

            var builder = new EntityConnectionStringBuilder();
            builder.Metadata = "metadata=~/bin/Models/DBModel.csdl|~/bin/Models/DBModel.ssdl|~/bin/Models/DBModel.msl";
            builder.Provider = "System.Data.SqlClient";
            builder.ProviderConnectionString = scsb.ConnectionString;
            DBEntities db = new DBEntities(builder.ConnectionString);
            return db;
        }
我知道这条线有问题:

元数据= “元数据=~/bin/Models/DBModel.csdl~/bin/Models/DBModel.ssdl~/bin/Models/DBModel.msl”

我检查,csdl、ssdl、msl位于/mvcinfosite/bin/Models/.csdl、.ssdl、.msl中

我的edmx的配置为:
元数据工件处理:复制到输出目录

下面是全部错误

指定的元数据路径无效。有效路径必须为 现有目录,扩展名为“.csdl”的现有文件, “.ssdl”或“.msl”,或标识嵌入式资源的URI


谢谢

请尝试删除
~
字符,并使用应用程序根目录的有效相对路径。我认为它无法处理ASP.NET应用程序中使用的这个特殊字符