EF 5.x DbContext的Code First连接字符串不工作

本文关键字:连接 字符串 工作 First Code DbContext EF | 更新日期: 2023-09-27 17:59:50

我有一个项目,它有EF代码优先类和DB上下文

public partial class MyProjectContext : DbContext
{
    public MyProjectContext()
        : base("name=MyProjectContext")
    {
    }
    public DbSet<Person> Persons { get; set; }

我的app.config看起来像

<add name="MyProjectContext" connectionString="server=<serverIP>; user id=<userid>; password=<password>; database=<dbName>; pooling=false; Persist Security Info=True " providerName="MySql.Data.MySqlClient" />

我在我的Web项目中引用了上面的Project1,我在Web项目中也有下面的连接字符串

<add name="MyProjectContext" connectionString="server=<serverIP>; user id=<userid>; password=<password>; database=<dbName>; pooling=false; Persist Security Info=True " providerName="MySql.Data.MySqlClient" />

这是我抛出错误的代码

MyProjectContext db = new MyProjectContext();
            Person user = (from q in db. Persons
                            where q.PersonId == 1
                            select q).First();

我得到以下错误

{"An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct."}
{"The provider did not return a ProviderManifestToken string."}

如果我首先将MYsql与模型一起使用,它可以与连接器I Have一起使用,即6.6.4.0我已经手动创建了一个数据库,所以我不想为创建数据库进行初始化。与运行tt文件和更新edmx文件相比,这段代码首先为我提供了对类的更多控制。

EF 5.x DbContext的Code First连接字符串不工作

您根本不需要放入name=,只要包含MyProjectContext的项目在其App.Config文件中也包含该连接字符串:

public MyProjectContext() : base("MyProjectContext")

我最终使用了EF power Tools,它完成了第一代反向工程内部代码,wihc起了作用。它使用static方法生成了相同的Connection字符串但不同的DBcontext类。