我有一个项目,其EF代码首先是Classes和DB context
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与模型一起使用,它可以使用Connector I Have,即6.6.4.0 我已经手动创建了一个数据库,所以我不想要创建数据库的初始化。这个代码首先让我更多地控制类,而不是运行tt文件和更新edmx文件。
答案 0 :(得分:0)
只要包含name=
的项目在其App.Config文件中包含该连接字符串,您根本不需要输入MyProjectContext
:
public MyProjectContext() : base("MyProjectContext")
答案 1 :(得分:0)
我最终使用了第一代Reverse Eng内码的EF电源工具,wihc工作。它使用statict方法生成相同的Connection字符串但不同的DBcontext类。