MySQL + Entity框架中的对象引用错误

时间:2013-01-30 06:32:51

标签: c# asp.net mysql entity-framework

我正在尝试用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" />

请帮帮我,我哪里错了?

谢谢!

1 个答案:

答案 0 :(得分: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.build clean。

b.build mysql dll进入你的bin目录

c。为MySQL.Data和MySQL.Data.Entities安装nuget包。((右键单击程序集并确保在构建之前将Copy Local设置为true)

d。完全移除版本= 6.3.5.0标记并在VS.type =“MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data”上进行构建而不进行任何版本控制,而不是指定完整版本数据。