1

我有一个具有 EF 代码优先类和数据库上下文的项目

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 文件相比,此代码首先使我能够更好地控制类。

4

2 回答 2

0

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

public MyProjectContext() : base("MyProjectContext")
于 2013-02-18T20:46:35.200 回答
0

我最终使用了第一代反向工程内部代码的 EF 电动工具,wihc 工作。它使用 statict 方法生成相同的连接字符串但不同的 DBcontext 类。

于 2013-02-18T23:03:15.127 回答