MySQL + 实体框架中的对象引用错误
本文关键字:对象引用 错误 框架 实体 MySQL | 更新日期: 2023-09-27 17:56:48
我正在尝试使用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.";
}
}
}
代码在 if (context.SaveChanges() == 1)
上收到Object Reference
错误。甚至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="server=localhost;User Id=root;password=root;database=entityframework"" providerName="System.Data.EntityClient" />
请帮助我,我哪里出错了?
谢谢!
只是你可能忽略了几件事。 与其说是答案。 作为评论发布的时间很长
<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 构建到你的 bin 目录中
c.为 MySQL.Data和 MySQL.Data.Entities 安装 nuget 包。((右键单击程序集并确保在构建之前将"复制本地"设置为 true)
d.完全删除 Version=6.3.5.0 标记,并在 VS.type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" 上构建,而无需指定完整版本数据。