2013-08-05 25 views
0

我正在使用xtragrid保存,加载和修改数据。现在切换到EF5后,它不起作用。试图将我的代码更改为localtobindinglist,但数据库中没有任何更改。有什么建议么?使用实体框架5.0和xtragrid保存数据

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); 
      } 
     } 

它像是节省:如果我只添加一个条目,但它节省了,如果我添加了两个它不保存。这怎么可能呢?

+0

你用'db.Konstruksiyon'试过了吗? – Jay

+0

是的,我得到一个错误,说“数据绑定直接存储查询(DbSet,DbQuery,DbSqlQuery)不支持。”,但是这是我一直使用的方法,直到ef5 – user1565366

+0

简单的谷歌搜索你的错误消息给了我[这](http://stackoverflow.com/questions/12938371/data-binding-directly-to-a-store-query-dbset-dbquery-dbsqlquery-is-not-suppo)。你看过它吗? – Jay

回答

0

尝试让数据源是ObservableCollection ,而不是一个列表:

konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local; 

它知道变化occour,因此应更适合changetracking