无法创建对象上下文

时间:2010-02-10 01:52:07

标签: c# .net asp.net-mvc entity-framework

在ASP.NET MVC中使用Entity框架时出现Unable to create object context错误。

背景

每当我POST到控制器时,我都没有得到回复。我尝试直接使用控制器/Data/GetAll的方法,并收到此错误:

错误

  

指定的命名连接是   要么在配置中找不到,   不打算用于   EntityClient提供程序,或无效。   描述:未处理的异常   在执行期间发生   当前的网络请求。请查看   堆栈跟踪以获取更多信息   错误及其来源   代码。

     

异常详细信息:   System.ArgumentException:   指定的命名连接是   没有在配置中找到,没有   打算用于   EntityClient提供程序,或无效。

抛出异常的代码片段:

public class TrackItContextCreator {
    public ObjectContext Create() {
        ObjectContext context = new ObjectContext("name=TrackItDBEntities");

        context.DefaultContainerName = "TrackItDBEntities";

        return context;
    }
}

的Web.config

<add name="TrackItDBEntities" connectionString="metadata=res://*
/EntityFramework.TrackItDBModel.csdl|res://*/EntityFramework.TrackItDBModel.ssdl|res:
//*/EntityFramework.TrackItDBModel.msl;provider=System.Data.SqlClient;provider
 connection string=&quot;Data Source=host;User ID=myuseracc;Password=******;
MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

我能错过什么?

2 个答案:

答案 0 :(得分:7)

从评论中,我想我知道问题是什么。

如果模型位于单独的程序集中,则基本上必须确保在的每个程序集的app.config / web.config中指定了连接字符串模型。我猜你只在模型项目中有它。

另请参阅this questionthis thread on MSDN。涉及模型的类似问题都在单独的项目/程序集中。我99%肯定这与你的问题有关。

答案 1 :(得分:0)

如果您使用类库开发Web应用程序,则应将数据库的connectionStrings都添加到Web.Config和App.Config中。