C# Visual C Express。数据可以保存,但在我关闭Visual C之前

C# Visual C Express。数据可以保存,但在我关闭Visual C之前,c#,saving-data,C#,Saving Data,这是用于添加新项目的代码 private KrystalCafeDatabaseEntities kce = new KrystalCafeDatabaseEntities(); private Byte[] byteBLOBData; public AddItem() { InitializeComponent(); cmbCategory.DataSource = kce.tblItemTypes; cmb

这是用于添加新项目的代码

    private KrystalCafeDatabaseEntities kce = new KrystalCafeDatabaseEntities();

    private Byte[] byteBLOBData;

    public AddItem()
    {
        InitializeComponent();

        cmbCategory.DataSource = kce.tblItemTypes;
        cmbCategory.DisplayMember = "Name";
        cmbCategory.ValueMember = "ItemType";

    }

    private void btnUpload_Click(object sender, EventArgs e)
    {
        DialogResult result = openFileDialog1.ShowDialog();

        if (result == DialogResult.OK)
        {
            FileStream fsBLOBFile = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);

            byteBLOBData = new Byte[fsBLOBFile.Length];

            fsBLOBFile.Read(byteBLOBData, 0, byteBLOBData.Length);

            fsBLOBFile.Close();

            MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);

            pbImage.Image = Image.FromStream(stmBLOBData);
        }
    }

    private void btnSave_Click(object sender, EventArgs e)
    {
        tblItem Item = new tblItem();

        Item.Name = txtName.Text;

        Item.Price = decimal.Parse(txtPrice.Text);

        Item.Image = byteBLOBData;

        Item.ItemType = (int)cmbCategory.SelectedValue;

        kce.AddTotblItems(Item);

        kce.SaveChanges();

        MessageBox.Show("Record Saved! :D");

    }
}
}


程序正常运行,但数据只会存储一段时间,如果我关闭程序或编辑代码,我刚才添加的数据将丢失。

一个可能的错误是KrystalCafeDatabaseEntities打开一个事务,您需要在调用SaveChanges后提交该事务。

当程序仍在运行时,更改是否保留到数据库中?我们可以获得KrystalCafeDatabaseEntities的来源吗?否则很难说……SaveChanges是否通常在实体框架中提交事务?