1

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 を使用すると、Connector I Have 6.6.4.0 で動作します。既に手動で作成された DB があるため、DB を作成するための初期化は必要ありません。このコードを使用すると、まず、tt ファイルを実行して edmx ファイルを更新するよりも、クラスをより詳細に制御できます。

4

2 に答える 2

0

私は、リバース エンジニアリングの内部コードの第 1 世代を実行する EF パワー ツールを使用することになりました。同じ接続文字列を生成しましたが、 statict メソッドを使用して異なる DBcontext クラスを生成しました。

于 2013-02-18T23:03:15.127 に答える
0

含むプロジェクトのApp.Config ファイルにその接続文字列も含まれてname=いる限り、まったく入力する必要はありません。MyProjectContext

public MyProjectContext() : base("MyProjectContext")
于 2013-02-18T20:46:35.200 に答える