最近在用C#写QQ机器人的时候遇到一点问题,为了快捷开发,在数据库操作的时候选用了EntityFramework框架。
2020-1-17-9-21-36.png
这是我的项目结构,EF所在的项目是一个类库,在主项目中进行引用。在使用的时候因为没有对应的App.config文件,所以会提示找不到连接字符串。
这个时候我们需要找到我们的DBContext类去修改它的默认连接字符串:
2020-1-17-9-25-7.png
我们需要把括号里面的内容改成我们的连接字符串。
但是需要注意的是,连接字符串的格式,我最初开始的使用填写的字符串是下面这种样式的:
2020-1-17-9-27-8.png
然后就会收到一个错误提示:
>

正在 Code First 模式下将此上下文与从 EDMX 文件生成的用于 Database First 或 Model First 开发的代码一起使用。这将无法正常工作。若要解决此问题,请不要删除引发此异常的代码行。如果希望使用 Database First 或 Model First,请确保 Entity Framework 连接字符串包括在启动项目的 app.config 或 web.config 中。如果要创建你自己的 DbConnection,请确保它是 EntityConnection 而不是某种其他类型的 DbConnection,并且确保将其传递到接受 DbConnection 的基本 DbContext 构造函数之一。若要了解 Code First、Database First 和 Model First,请参阅此处的 Entity Framework 文档: http://go.microsoft.com/fwlink/?LinkId=394715

一开始还是迷茫了一阵的,后来仔细看了看连接字符串才发现问题出在哪里,修改之后的字符串是这个样子的:
2020-1-17-9-29-21.png

也就是打开你的App.Config文件,找到对应的connectionString,将双引号里面的内容都粘贴过来。
以下是代码,注意替换你自己的信息。

metadata=res://*/Model.RobotModel.csdl|res://*/Model.RobotModel.ssdl|res://*/Model.RobotModel.msl;provider=System.Data.SqlClient;provider connection string=\"data source=yourServer;initial catalog=yourDataBase;persist security info=True;user id=yourUserId;password=yourPassword;MultipleActiveResultSets=True\"

没啥技术的程序员,每天只会生产bug