簡體   English   中英

使用Entity Framework 5.0和xtragrid保存數據

[英]Saving data using Entity Framework 5.0 and xtragrid

我正在使用xtragrid保存,加載和修改數據。 現在,切換到EF5后,它不起作用。 試圖將我的代碼更改為localtobindinglist ,但是數據庫中沒有任何更改。 有什么建議么?

public partial class formKonstruksiyon : Form
{
    public Tank_Analizor_DBEntities db;

    public formKonstruksiyon()
    {
        InitializeComponent();

        db = new Tank_Analizor_DBEntities();
    }

    private void formKonstruksiyon_Load(object sender, EventArgs e)
    {
        konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local.ToBindingList();
        gridControl1.DataSource = konstruksiyonBindingSource.DataSource;
    }

    private void barButtonItemSave_ItemClick(object sender,
      DevExpress.XtraBars.ItemClickEventArgs e)
    {
        try
        {
            db.SaveChanges();
            LibStatic.ShowSuccessMessage();
        }
        catch (Exception ex)
        {
            LibStatic.ShowErrorMessage(ex);
        }
    }

    private void silToolStripMenuItem_Click(object sender, EventArgs e)
    {
        gridView1.DeleteRow(gridView1.FocusedRowHandle);
    }
}

更改后的一些更新:

 konstruksiyonBindingSource.DataSource = db.Konstruksiyon.ToList();

 private void barButtonItemSave_ItemClick(object sender, 
   DevExpress.XtraBars.ItemClickEventArgs e)
        {
            LibStatic.GridPostPendingRow(gridView1);

            try
            {
                konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local.ToBindingList();

                db.SaveChanges();
                LibStatic.ShowSuccessMessage();
            }
            catch (Exception ex)
            {
                LibStatic.ShowErrorMessage(ex);
            } 
        }

它有點保存:如果我僅添加一個條目則不會保存,但是如果我添加兩個條目則會保存。 這怎么可能呢?

您應該將實體添加到上下文中,或者如果要執行更新,請附加實體並將State屬性設置為Modifyed:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=619

嘗試讓數據源成為ObservableCollection ,而不是List:

konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local; 

它知道更改何時發生,因此應該更適合於更改跟蹤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM