我使用实体框架(数据库优先),当我运行程序时出现此错误:
上下文正在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>
我搜索了这个错误,但我不明白。
答案 0 :(得分:0)
你有多个背景吗?如果您在两个或多个上下文之间共享连接,则无效。但是,如果您为它们使用不同的连接,它将起作用。
答案 1 :(得分:0)
您拥有的连接字符串不适用于数据库第一工作流程。它实际上用于代码第一工作流程。通常对于数据库来说,您实际上不必自己修改连接字符串(全部通过设计人员完成)。
以下是数据库第一个工作流程中使用的连接字符串的正确格式:
<connectionStrings>
<add name="PayRollContext"
connectionString="metadata=res://*/model.csdl|res://*/model.ssdl|res://*/model.msl;provider connection string="Data Source=ATI_SHAH\SQLEXPRESS;Initial Catalog=PayRollManagmentSystem;Integrated Security=True;""
providerName="System.Data.EntityClient" />
</connectionStrings>
我认为您的edmx
文件为model.edmx
我认为您应该再次按照向导从数据库导入模型来了解它的工作原理。