0

MySql データベースでエンティティ フレームワークを学習しようとしています。
次のコードでデータを保存しようとしています:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (txtName.Text == string.Empty ||
    txtAge.Text == string.Empty)
    {
        lblMsg.Text = "Please enter proper details first";
        return;
    }

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

    using (entityframeworkEntities context =
    new entityframeworkEntities())
    {

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

でコードにObject Referenceエラーが発生していif (context.SaveChanges() == 1)ます。もオブジェクトempに追加されません。contaxt

コードをデバッグすると、デバッガーは次の部分に移動します。

public entityframeworkEntities() :                               
base("name=entityframeworkEntities", "entityframeworkEntities") 
{
    this.OnContextCreated();   
}

この部分でも、デバッガーは中かっこに来ますが、this.OnContextCreated();行をスキップします。

Web.Config の接続文字列は次のとおりです。

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

私を助けてください、どこが間違っていますか?

ありがとうございました!

4

1 に答える 1

0

見落としているかもしれないことがいくつかあります。あまり答えではありません。コメントとして投稿するにはかなり長い

<system.data>
    <DbProviderFactories>
        <remove invariant="MySql.Data.MySqlClient" />
        <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.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>

a.ビルドクリーン。

b. mysql dll を ur bin ディレクトリにビルドします。

c. MySQL.Data および MySQL.Data.Entities の nuget パッケージをインストールします ((アセンブリを右クリックし、ビルドする前に Copy Local が true に設定されていることを確認します)。

d.完全なバージョン データを指定する代わりに、Version=6.3.5.0 タグを完全に削除し、VS.type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" でバージョン管理なしでビルドします。

于 2013-01-30T10:47:39.017 に答える