C# 无法将更改保存到数据库

C# 无法将更改保存到数据库,c#,mysql,database,winforms,visual-studio-2013,C#,Mysql,Database,Winforms,Visual Studio 2013,我正在尝试使用数据库执行windows窗体应用程序 我创建了数据库并添加了实体框架 这是我用来在数据库中添加数据的代码: public void AddProductToDataBase() { try { DataBase _db = new DataBase(); var item = new Products(); item.Title = title.Text;

我正在尝试使用数据库执行windows窗体应用程序

我创建了数据库并添加了实体框架

这是我用来在数据库中添加数据的代码:

public void AddProductToDataBase()
    {
        try
        {
            DataBase _db = new DataBase();
            var item = new Products();
            item.Title = title.Text;
            item.Subtitile = subtitle.Text;
            item.Description = description.Text;
            item.Price = float.Parse(price.Text);
            _db.Products.Add(item);
            _db.SaveChanges();

            MessageBox.Show("Product successfully added!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
            title.Clear();
            subtitle.Clear();
            description.Clear();
            price.Clear();

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
一切似乎都正常工作,并没有错误消息和消息“产品已成功添加”apear,但当我查看数据库时,并没有任何结果

我在这里发布之前搜索过,我发现VisualStudio正在制作数据库的副本,如果您将数据库的“复制到输出目录”属性更改为“复制到更新的目录”,它应该可以正常工作,但没有,我对实体框架做了相同的更改,仍然相同,没有任何更改

如何在正确的数据库中添加数据?我还需要这个程序是可移植的

谢谢

编辑:这是DataBase.Contex.cs

namespace OlxSelenium
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;

    public partial class DataBase : DbContext
    {
        public DataBase()
            : base("name=DataBase")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public virtual DbSet<Photos> Photos { get; set; }
        public virtual DbSet<Products> Products { get; set; }
    }
}
名称空间OlxSelenium
{
使用制度;
使用System.Data.Entity;
使用System.Data.Entity.Infrastructure;
公共部分类数据库:DbContext
{
公共数据库()
:base(“名称=数据库”)
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
抛出新代码FirstException();
}
公共虚拟数据库集照片{get;set;}
公共虚拟数据库集产品{get;set;}
}
}
试试这段代码

try
{
using (DataBase context = new DataBase())
{            
       Products item = new Products();
       item.Title = title.Text;
       item.Subtitile = subtitle.Text;
       item.Description = description.Text;
       item.Price = float.Parse(price.Text);
       context.Products.Add(item);
       context.SaveChanges();

       MessageBox.Show("Product successfully added!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
       title.Clear();
       subtitle.Clear();
       description.Clear();
       price.Clear();
}

}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

数据库对象是如何定义的?我在您的代码中没有看到对实体的引用。这是我如何进行引用的。它是wrog吗?不幸的是,链接没有显示屏幕截图:(您必须在代码中引用DataBaseEntities 1。例如,使用using语句。使用(DataBaseEntities context as new DataBaseEntities()){//代码要处理数据,请使用context访问数据库中的表}问题不是向数据库中添加数据,问题是向正确的数据库中添加数据。我可以向数据库中写入和读取数据,但在副本中,我想向原始数据库中添加数据。您是否没有按照database.context.cs文件中的描述映射原始数据库?我提供的代码不仅在mem中插入原始数据库奥里。