【发布时间】:2011-11-21 06:44:09
【问题描述】:
这是我的问题。
我为我的实体框架上下文使用动态连接字符串。
//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;
}
我知道问题出在这一行:
builder.Metadata = "元数据=~/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-mvc-2 entity-framework-4