【问题标题】:Entity framework: error in calling save changes实体框架:调用保存更改时出错
【发布时间】:2013-01-16 18:36:40
【问题描述】:

我正在使用实体框架来连接 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.";
            }
        }

报错

“对象引用未设置为对象的实例”在 if 具有“context.SaveChanges”的条件。

我也尝试在创建上下文时传递连接字符串

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

但它给出了“不支持关键字:'”服务器'的错误。 这是我在实体框架中的第一次尝试,有没有人可以建议我。

【问题讨论】:

  • 当我将我的应用程序表单3.5的.NET框架更改为4.0时问题解决了

标签: c# mysql web-config connection-string


【解决方案1】:

您还需要将以下内容添加到您的 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>

【讨论】:

    【解决方案2】:

    如果您可以从服务器检索数据,则连接字符串是好的。

    至于 SaveChanges() 尝试首先调用 context.ChangeTracker.DetectChanges() 作为成功条件,例如,您可以将实体的初始 id 设置为 -1,然后检查它是否 >= 0。(也就是说,如果您的PrimaryKey 也是 Autoincrement/Identity)

    【讨论】:

    • 不,我无法检索数据表单服务器,你能告诉我这里有什么问题吗。
    • ConnectionString 问题。我建议您重新生成该连接字符串,它不包含实例名称或凭据等基本内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2023-04-04
    • 2016-07-17
    相关资源
    最近更新 更多