DBContext错误

时间:2015-09-18 09:54:43

标签: c# entity-framework dbcontext

我使用实体框架(数据库优先),当我运行程序时出现此错误:

  

上下文正在Code First模式中使用,代码是   从EDMX文件生成的数据库优先或模型优先   发展。这将无法正常工作。要解决这个问题,请不要   删除抛出此异常的代码行。如果你想使用   数据库优先或模型优先,然后确保实体   框架连接字符串包含在app.config或中   启动项目的web.config。如果你正在创建自己的   DbConnection,然后确保它是EntityConnection而不是   一些其他类型的DbConnection,并将它传递给其中一个   采用DbConnection的基础DbContext构造函数。了解更多   关于Code First,Database First和Model First,请参阅实体   这里的框架文档:   http://go.microsoft.com/fwlink/?LinkId=394715

我的连接字符串是:

<connectionStrings>
    <add name="PayRollContext"
     connectionString="Data Source=ATI_SHAH\SQLEXPRESS;Initial Catalog=PayRollManagmentSystem;Integrated Security=True;"
     providerName="System.Data.SqlClient" />
  </connectionStrings>

我搜索了这个错误,但我不明白。

2 个答案:

答案 0 :(得分:0)

你有多个背景吗?如果您在两个或多个上下文之间共享连接,则无效。但是,如果您为它们使用不同的连接,它将起作用。

答案 1 :(得分:0)

您拥有的连接字符串不适用于数据库第一工作流程。它实际上用于代码第一工作流程。通常对于数据库来说,您实际上不必自己修改连接字符串(全部通过设计人员完成)。

以下是数据库第一个工作流程中使用的连接字符串的正确格式:

<connectionStrings>
  <add name="PayRollContext"
       connectionString="metadata=res://*/model.csdl|res://*/model.ssdl|res://*/model.msl;provider connection string=&quot;Data Source=ATI_SHAH\SQLEXPRESS;Initial Catalog=PayRollManagmentSystem;Integrated Security=True;&quot;"
       providerName="System.Data.EntityClient" />
</connectionStrings>

我认为您的edmx文件为model.edmx

我认为您应该再次按照向导从数据库导入模型来了解它的工作原理。