1

我有了EF代码第一类和DB上下文项目EF 5.x的代码首先连接字符串的DbContext不工作

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与模型首先,它与连接器的工作原理我有一个是6.6.4.0 我已经有一个手动创建的数据库,所以我不想有创建数据库的初始化。这个代码首先给我更多的控制,而不必运行tt文件并更新edmx文件。

回答

0

我结束了使用EF电源使用Reverse Eng内部代码的工具,wihc工作。它使用statict方法生成了相同的连接字符串,但生成了不同的DBcontext类。

0

你并不需要把name=可言,只要包含MyProjectContext也是该项目包含在它的app.config文件的连接字符串:

public MyProjectContext() : base("MyProjectContext") 
+0

我试图删除没有帮助的名称。仍然会出现相同的错误 – 2013-02-18 20:55:12

+0

您是否确定包含您的MyProjectContext文件的项目的App.config也具有完全相同的连接字符串? – IronMan84 2013-02-18 21:32:42

+0

我在我的DAO项目的app.config和web项目的web.config中有相同的连接字符串。 – 2013-02-18 21:44:51