0

MySqlを接続するためにエンティティフレームワークを使用しています。MySql データベースを使用してエンティティ データ モーダルを作成しました。web.config に接続文字列が自動的に生成されます。これは、私の場合は次のようになります。

 <add name="entityframework1" connectionString="metadata=res://*/EntityFramework.csdl|res://*/EntityFramework.ssdl|res://*/EntityFramework.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;User Id=root;database=entityframework&quot;" providerName="System.Data.EntityClient" />

今、データベースにレコードを保存したいのですが、コードは次のとおりです:-

        employee emp = new employee();
        emp.Name = txtName.Text;
        emp.Age = Convert.ToInt32(txtAge.Text);

        using (entityframework context =
              new entityframework())
        {

            context.AddToemployees(emp);
            if (context.SaveChanges() == 1)
            {
                lblMsg.Text = "Saved Successfully.";
            }
        }

それはエラーを与える

「context.SaveChanges」を持つif条件で「オブジェクト参照がオブジェクトのインスタンスに設定されていません」。

コンテキスト作成時に接続文字列も渡すようにしました

string connectionstring = "SERVER=localhost;DATABASE= entityframework ;UID= root;";

しかし、「Keyword not supported: '"server'.」というエラーが表示されます。これは、エンティティ フレームワークでの私の最初の試みです。

4

2 に答える 2

0

サーバーからデータを取得できる場合、接続文字列は良好です。

SaveChanges() については、context.ChangeTracker.DetectChanges()最初に呼び出してみてください。成功条件として、たとえばエンティティの初期 ID を -1 に設定し、その後、それが >= 0 であるかどうかを確認できます (つまり、PrimaryKey も Autoincrement/Identity である場合)。 )

于 2013-02-01T12:42:54.880 に答える
0

また、web.config ファイルに以下を追加する必要があります (バージョン文字列を適切なバージョンの MySQL .NET コネクタに置き換えます)。

<system.data><DbProviderFactories>
  <clear />
  <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories></system.data>
于 2013-02-17T05:52:11.210 に答える